www.thisjav.com
Open in
urlscan Pro
2606:4700:30::6812:33a3
Public Scan
- Internal
- urlscan.io (IP)
- urlscan.io (Domain)
- Effective Hostname
- VirusTotal
- SecurityTrails
- crt.sh
- RiskIQ
- Submitted URL
- Google Safe Browsing
- Archive.org
- Effective IP
- VirusTotal
- SecurityTrails
- RiskIQ
- Domaintools
- Censys
Add Verdict Report
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Submission: On February 05 via manual (February 5th 2019, 2:27:43 am UTC) from JP
Summary
This is the only time www.thisjav.com was scanned on urlscan.io!
urlscan.io Verdict: No classification
Domain & IP information
IP Address | AS Autonomous System | ||
---|---|---|---|
1 21 | 2606:4700:30:... 2606:4700:30::6812:33a3 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
2 | 2a04:4e42::729 2a04:4e42::729 | 54113 (FASTLY) (FASTLY - Fastly) | |
2 | 209.197.3.15 209.197.3.15 | 20446 (HIGHWINDS3) (HIGHWINDS3 - Highwinds Network Group) | |
1 | 2a00:1450:401... 2a00:1450:4016:80a::200a | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
10 | 2606:4700:30:... 2606:4700:30::6812:32a3 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
7 | 88.208.59.100 88.208.59.100 | 39572 (ADVANCEDH...) (ADVANCEDHOSTERS-AS) | |
2 | 2606:2800:234... 2606:2800:234:1f1f:1754:1fef:718:1223 | 15133 (EDGECAST) (EDGECAST - MCI Communications Services) | |
4 | 23.111.9.35 23.111.9.35 | 33438 (HIGHWINDS2) (HIGHWINDS2 - Highwinds Network Group) | |
1 | 2a00:1450:400... 2a00:1450:4001:809::200a | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
1 | 2606:4700::68... 2606:4700::6813:c397 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
5 | 2a00:1450:400... 2a00:1450:4001:821::200e | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
1 | 2a00:1450:401... 2a00:1450:4016:80d::2003 | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
7 | 95.211.229.247 95.211.229.247 | 60781 (LEASEWEB-...) (LEASEWEB-NL-AMS-01 Netherlands) | |
6 | 95.211.229.246 95.211.229.246 | 60781 (LEASEWEB-...) (LEASEWEB-NL-AMS-01 Netherlands) | |
1 | 2606:4700::68... 2606:4700::6810:a632 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
1 2 | 151.101.120.134 151.101.120.134 | 54113 (FASTLY) (FASTLY - Fastly) | |
1 | 2606:4700:30:... 2606:4700:30::681b:a41e | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
1 | 94.31.29.128 94.31.29.128 | 33438 (HIGHWINDS2) (HIGHWINDS2 - Highwinds Network Group) | |
1 | 52.4.72.68 52.4.72.68 | 14618 (AMAZON-AES) (AMAZON-AES - Amazon.com) | |
1 | 195.181.170.18 195.181.170.18 | 60068 (CDN77) (CDN77) | |
1 | 69.89.69.120 69.89.69.120 | 558 (NNEXT) (NNEXT - NV Next LLC) | |
1 | 2606:4700::68... 2606:4700::6811:a6ba | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
4 | 2606:4700::68... 2606:4700::6810:4ea6 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
2 | 151.101.128.134 151.101.128.134 | 54113 (FASTLY) (FASTLY - Fastly) | |
1 | 216.21.13.17 216.21.13.17 | 53334 (TUT-AS) (TUT-AS - Total Uptime Technologies) | |
2 | 93.93.51.191 93.93.51.191 | 34655 (DOCLER-AS) (DOCLER-AS) | |
3 | 93.93.51.190 93.93.51.190 | 34655 (DOCLER-AS) (DOCLER-AS) | |
3 | 69.89.69.121 69.89.69.121 | 558 (NNEXT) (NNEXT - NV Next LLC) | |
1 | 151.101.120.64 151.101.120.64 | 54113 (FASTLY) (FASTLY - Fastly) | |
101 | 30 |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
www.thisjav.com | |
cdn.thisjav.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN54113 (FASTLY - Fastly, US)
vjs.zencdn.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US)
PTR: vip0x00f.map2.ssl.hwcdn.net
maxcdn.bootstrapcdn.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
fonts.googleapis.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
www.thisjav.com | |
cdn.thisjav.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN39572 (ADVANCEDHOSTERS-AS, NL)
ca.clcknads.pro |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US)
ads.exosrv.com | |
ads.exoclick.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US)
use.fontawesome.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
ajax.googleapis.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
cdnjs.cloudflare.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
www.google-analytics.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
fonts.gstatic.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL)
syndication.exosrv.com | |
syndication.exoclick.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL)
syndication.exosrv.com | |
syndication.exoclick.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
openload.co |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN54113 (FASTLY - Fastly, US)
wwwthisjavcom.disqus.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
statdynamic.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US)
PTR: 94.31.29.128.IPYX-077437-ZYO.above.net
cdn.popcash.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN14618 (AMAZON-AES - Amazon.com, Inc., US)
PTR: ec2-52-4-72-68.compute-1.amazonaws.com
dcba.popcash.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN60068 (CDN77, GB)
PTR: frankfurt-15.cdn77.com
c1.popads.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN558 (NNEXT - NV Next LLC, US)
engine.phn.doublepimp.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
c.adsco.re |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
c.disquscdn.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN54113 (FASTLY - Fastly, US)
disqus.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN53334 (TUT-AS - Total Uptime Technologies, LLC, US)
serve.popads.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN34655 (DOCLER-AS, HU)
pt.ptawe.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN34655 (DOCLER-AS, HU)
galleryn0.awemwh.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN558 (NNEXT - NV Next LLC, US)
engine.phn.doublepimp.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN54113 (FASTLY - Fastly, US)
links.services.disqus.com |
Domain | Requested by | |
---|---|---|
25 | cdn.thisjav.com |
www.thisjav.com
|
10 | syndication.exoclick.com |
ads.exoclick.com
|
7 | ca.clcknads.pro |
www.thisjav.com
ca.clcknads.pro |
6 | www.thisjav.com |
1 redirects
www.thisjav.com
statdynamic.com |
5 | www.google-analytics.com |
www.thisjav.com
|
4 | c.disquscdn.com |
wwwthisjavcom.disqus.com
|
4 | engine.phn.doublepimp.com |
ca.clcknads.pro
www.thisjav.com |
4 | use.fontawesome.com |
www.thisjav.com
use.fontawesome.com |
3 | galleryn0.awemwh.com |
www.thisjav.com
|
3 | syndication.exosrv.com |
ads.exosrv.com
|
2 | pt.ptawe.com |
ca.clcknads.pro
www.thisjav.com |
2 | disqus.com |
wwwthisjavcom.disqus.com
|
2 | wwwthisjavcom.disqus.com |
1 redirects
www.thisjav.com
|
2 | maxcdn.bootstrapcdn.com |
www.thisjav.com
|
2 | vjs.zencdn.net |
www.thisjav.com
|
1 | links.services.disqus.com |
c.disquscdn.com
|
1 | serve.popads.net |
c1.popads.net
|
1 | c.adsco.re |
c1.popads.net
|
1 | c1.popads.net |
www.thisjav.com
|
1 | dcba.popcash.net |
cdn.popcash.net
|
1 | cdn.popcash.net |
www.thisjav.com
|
1 | statdynamic.com |
www.thisjav.com
|
1 | openload.co |
www.thisjav.com
|
1 | fonts.gstatic.com |
www.thisjav.com
|
1 | cdnjs.cloudflare.com |
www.thisjav.com
|
1 | ajax.googleapis.com |
www.thisjav.com
|
1 | ads.exoclick.com |
www.thisjav.com
|
1 | ads.exosrv.com |
www.thisjav.com
|
1 | fonts.googleapis.com |
www.thisjav.com
|
101 | 29 |
This site contains links to these domains. Also see Links.
Domain |
---|
www.facebook.com |
twitter.com |
plus.google.com |
Subject Issuer | Validity | Valid | |
---|---|---|---|
*.bootstrapcdn.com COMODO RSA Domain Validation Secure Server CA |
2018-10-03 - 2019-10-12 |
a year | crt.sh |
*.googleapis.com Google Internet Authority G3 |
2019-01-15 - 2019-04-09 |
3 months | crt.sh |
*.exoclick.com DigiCert SHA2 Secure Server CA |
2017-12-12 - 2020-12-16 |
3 years | crt.sh |
*.fontawesome.com DigiCert SHA2 Secure Server CA |
2018-09-17 - 2019-11-21 |
a year | 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-15 - 2019-04-09 |
3 months | crt.sh |
*.google.com Google Internet Authority G3 |
2019-01-23 - 2019-04-17 |
3 months | crt.sh |
ssl436500.cloudflaressl.com COMODO ECC Domain Validation Secure Server CA 2 |
2018-09-27 - 2019-04-05 |
6 months | crt.sh |
*.disqus.com DigiCert SHA2 Secure Server CA |
2018-03-28 - 2020-04-27 |
2 years | crt.sh |
ca.clcknads.pro Let's Encrypt Authority X3 |
2018-12-15 - 2019-03-15 |
3 months | crt.sh |
*.popcash.net COMODO RSA Domain Validation Secure Server CA |
2017-04-05 - 2020-04-26 |
3 years | crt.sh |
engine.doublepimp.com Go Daddy Secure Certificate Authority - G2 |
2018-07-22 - 2019-09-20 |
a year | crt.sh |
ssl565697.cloudflaressl.com COMODO ECC Domain Validation Secure Server CA 2 |
2018-10-07 - 2019-04-15 |
6 months | crt.sh |
pt.ptawe.com Let's Encrypt Authority X3 |
2019-01-16 - 2019-04-16 |
3 months | crt.sh |
*.awemwh.com AlphaSSL CA - SHA256 - G2 |
2018-04-10 - 2019-04-11 |
a year | crt.sh |
f.ssl.fastly.net GlobalSign Organization Validation CA - SHA256 - G2 |
2018-08-30 - 2020-12-02 |
2 years | crt.sh |
This page contains 16 frames:
Primary Page:
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Frame ID: 19DCB9387F7837B7AF607A17D10596B1
Requests: 90 HTTP requests in this frame
Frame:
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961076&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643642&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 9C972062CA4BBA53F92530983DD9037E
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961078&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643644&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 628E2E205C05E4CB871305EABEFE23AE
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961080&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643647&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 392073BB012652936132860F3F320EDD
Requests: 1 HTTP requests in this frame
Frame:
https://openload.co/embed/NOZAq20HCpo
Frame ID: BCB85F7C536A9B58211B379B26577A53
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574945&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643700&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 6C14B37D0DCDA85F558FD1096070CE53
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354395&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643704&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 084A4224FB553E8812589757B419AD94
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574949&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643726&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: FDD9CBDFC35A17652F4F632975FD030B
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354397&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643728&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 5C7BA2BD57F7D4AF2F3DDE551A7E4444
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574931&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643730&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: DE21C7B7C69ACCA60149B3CC7BD6A055
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354399&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643735&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: E9F9F74A20A6BD4514889C34B2212105
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574953&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643737&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: B2828036F5C8DA51DF639015429235A0
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353949&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643829&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 164106822D86DF3106321C9CE430636A
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353951&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643831&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 95016ECB660C4DD19920DCC57635E48C
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353953&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643837&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 4548ABE6E84D70EC978F9F712EAE5CBF
Requests: 1 HTTP requests in this frame
Frame:
https://disqus.com/embed/comments/?base=default&f=wwwthisjavcom&t_u=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&t_d=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89&t_t=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89&s_o=default
Frame ID: 226A4F4B03CBA26C79F9D916D44CBBCB
Requests: 1 HTTP requests in this frame
Screenshot
Page URL History Show full URLs
-
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl...
HTTP 301
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl... Page URL
Detected technologies
VideoJS (Video Players) ExpandDetected patterns
- env /^VideoJS$/i
CloudFlare (CDN) Expand
Detected patterns
- headers server /cloudflare/i
Disqus (Comment Systems) Expand
Detected patterns
- env /^DISQUS/i
Google Analytics (Analytics) Expand
Detected patterns
- script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
- env /^gaGlobal$/i
Google Font API (Font Scripts) Expand
Detected patterns
- html /<link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com/i
OWL Carousel (Widgets) Expand
Detected patterns
- html /<link [^>]*href="[^"]+owl.carousel(?:\.min)?\.css/i
VigLink (Advertising Networks) Expand
Detected patterns
- env /^(?:vglnk(?:$|_)|vl_(?:cB|disable)$)/i
jQuery (JavaScript Libraries) Expand
Detected patterns
- env /^jQuery$/i
- html /<link [^>]*href="[^"]+owl.carousel(?:\.min)?\.css/i
Twitter Bootstrap () Expand
Detected patterns
- html /<link[^>]+?href="[^"]+bootstrap(?:\.min)?\.css/i
Page Statistics
101
Requests
35
%
HTTPS
45
%
IPv6
21
Domains
29
Subdomains
30
IPs
6
Countries
1861
kB
Transfer
5710
kB
Size
13
Cookies
3 Outgoing links
These are links going to different origins than the main page.
Search URL Search Domain Scan URL
Search URL Search Domain Scan URL
Search URL Search Domain Scan URL
Page URL History
This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.
-
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23
HTTP 301
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/ Page URL
Redirected requests
There were HTTP redirect chains for the following requests:
Request Chain 52- http://wwwthisjavcom.disqus.com/embed.js HTTP 301
- https://wwwthisjavcom.disqus.com/embed.js
101 HTTP transactions
4 data transactions
Method Protocol |
Status | Resource Path |
Size x-fer |
Time Latency |
Type MIME-Type |
IP Location |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET H/1.1 |
200 OK |
Primary Request
Cookie set
/
Show response
www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/ Redirect Chain
|
121 KB 16 KB |
1236ms
1235ms |
Document
text/html |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
Redirect headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
video-js.css
vjs.zencdn.net/5.11.7/ |
45 KB 14 KB |
31ms
5ms |
Stylesheet
text/css |
2a04:4e42::729 Fastly |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/ |
103 KB 17 KB |
77ms
18ms |
Stylesheet
text/css |
209.197.3.15 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
css
fonts.googleapis.com/ |
1 KB 468 B |
31ms
28ms |
Stylesheet
text/css |
2a00:1450:4016:80a::200a Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
owl.carousel.css
www.thisjav.com/static/owl-carousel/ |
1 KB 943 B |
27ms
20ms |
Stylesheet
text/css |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
owl.theme.css
www.thisjav.com/static/owl-carousel/ |
2 KB 1019 B |
19ms
13ms |
Stylesheet
text/css |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
main.min.css
www.thisjav.com/static/this/css/ |
15 KB 4 KB |
18ms
12ms |
Stylesheet
text/css |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
23165
Show response
ca.clcknads.pro/v1/apop/js/zone/ |
90 KB 38 KB |
49ms
15ms |
Script
application/javascript |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
js
Show response
ca.clcknads.pro/v1/a/23167/ |
24 KB 8 KB |
53ms
19ms |
Script
application/javascript |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
ads.js
Show response
ads.exosrv.com/ |
2 KB 837 B |
37ms
6ms |
Script
text/javascript |
2606:2800:234:1f1f:1754:1fef:718:1223 MCI Communication... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
ads.js
Show response
ads.exoclick.com/ |
2 KB 964 B |
34ms
6ms |
Script
text/javascript |
2606:2800:234:1f1f:1754:1fef:718:1223 MCI Communication... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmRbaVxB1JHEVyaq2caMbJKYadqZrg8xRywGuVEWgeaaNn
cdn.thisjav.com/ipfs/ |
53 KB 54 KB |
331ms
298ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmczHFKWVHMkUucoCRM2287ocXEXARiu6YWSzjazEsmPAW
cdn.thisjav.com/ipfs/ |
42 KB 43 KB |
541ms
510ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmVRzxAZG88GKZAKBuhdvwzjYbttvRzeJfJtnsjtj7nFQe
cdn.thisjav.com/ipfs/ |
54 KB 55 KB |
1053ms
1046ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmagKUBhsPT3dYLgMFS9ENt7dusy6TEtL1bDGVAygrXdjx
cdn.thisjav.com/ipfs/ |
50 KB 51 KB |
370ms
362ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmRDzbyVJtw7LjXKjf5qXjQ7y25Xf2AEY7eACyoJDHHu7o
cdn.thisjav.com/ipfs/ |
47 KB 48 KB |
1059ms
1051ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Qmd63Ws7iFMfaT6PWL1zCW8RLRheTV1CQHVmD8zowbbQEY
cdn.thisjav.com/ipfs/ |
42 KB 43 KB |
458ms
451ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Qmd1ZhdEutQ9FCy6fr1Fz45r16jbDvSnXxJYuTWCsHJZa4
cdn.thisjav.com/ipfs/ |
56 KB 57 KB |
720ms
719ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmWnZW7LGTevpEWqxfnSvCsomdfMuKfomFgNu227oHxWVD
cdn.thisjav.com/ipfs/ |
55 KB 56 KB |
1036ms
1035ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmUWoMkdgX6cHsRg6wATZdEWCPphXSTja3txy9hkP3z78p
cdn.thisjav.com/ipfs/ |
50 KB 51 KB |
27ms
26ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmQEQH1weoAyV2hRa24sKAJbKVyNaXki4atCT7mCojZaM9
cdn.thisjav.com/ipfs/ |
47 KB 48 KB |
461ms
461ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmYLNXDWuwQtE4w4sa3fKY3JZUuGkSiJam53PEGuczbciN
cdn.thisjav.com/ipfs/ |
41 KB 41 KB |
451ms
450ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmZXRkiE1gWn5N5GUryujPbiDrLxwxfGJBcwqgAaQ21GgP
cdn.thisjav.com/ipfs/ |
43 KB 44 KB |
487ms
486ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmYVHP4EPsrQrcZkTaJ7K6bDDXU9sVg2E25x9oTwJsfgv1
cdn.thisjav.com/ipfs/ |
36 KB 37 KB |
149ms
148ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmRqgSeLbZGBSyw6HsYbvc6SmAt4z8dQmKMfFdhKUyVWRh
cdn.thisjav.com/ipfs/ |
36 KB 37 KB |
1092ms
1092ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmZdoiUorHsQXYxPbML67caR48yh5EzDNKohXV93mHjZ5M
cdn.thisjav.com/ipfs/ |
36 KB 37 KB |
1502ms
1501ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmePgUJQgQUDGazS51WPvH7ZHH18Cix3ngVxZrqGJJLsJZ
cdn.thisjav.com/ipfs/ |
41 KB 41 KB |
1234ms
1234ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmSNZ2uFSaMR7AmdP69sZFDRggJie3vAxUbDceZbsYoVi7
cdn.thisjav.com/ipfs/ |
38 KB 39 KB |
25ms
25ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmS6Fj9tCY7L7vSGvuzLcWbaN1fRNUgnFayB1jLnbXZMy8
cdn.thisjav.com/ipfs/ |
38 KB 39 KB |
307ms
306ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmQisgJZbTWE7sYCNFFvR5rnuUaU8SpDGHk9oNcD2E3nXt
cdn.thisjav.com/ipfs/ |
43 KB 43 KB |
1320ms
1319ms |
Image
image/jpeg |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmRhbmMiiyr6h5eCmXDhZPRs1EGYCXarsLQ6NmW3wrWijj
cdn.thisjav.com/ipfs/ |
41 KB 42 KB |
29ms
28ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmdbzgN7ebxPBAgySVquAuyu7A5zEnDxwSRt2AhQF1sz8P
cdn.thisjav.com/ipfs/ |
37 KB 37 KB |
28ms
28ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmQ4yBQAQXU9Fjm88cawt7cZjPkHZwCAXwfPmALNyFSYA2
cdn.thisjav.com/ipfs/ |
38 KB 39 KB |
144ms
143ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmYduw3J4DRM3UV7tx6GpSmyVYVgN28KrLeA8LsW21UBLi
cdn.thisjav.com/ipfs/ |
36 KB 37 KB |
342ms
341ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
QmcT6VTCdPdC6Fh1rBLfun5LoZigCQPXzAAL2Psu5p47Cf
cdn.thisjav.com/ipfs/ |
41 KB 42 KB |
557ms
556ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
ee6891339e.js
Show response
use.fontawesome.com/ |
9 KB 4 KB |
31ms
7ms |
Script
text/javascript |
23.111.9.35 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
jquery.min.js
Show response
ajax.googleapis.com/ajax/libs/jquery/3.1.1/ |
85 KB 30 KB |
41ms
5ms |
Script
text/javascript |
2a00:1450:4001:809::200a Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
tether.min.js
Show response
cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/ |
24 KB 7 KB |
34ms
17ms |
Script
application/javascript |
2606:4700::6813:c397 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
bootstrap.min.js
Show response
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/ |
44 KB 12 KB |
20ms
18ms |
Script
text/javascript |
209.197.3.15 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
video.min.js
Show response
vjs.zencdn.net/5.4.6/ |
237 KB 56 KB |
7ms
5ms |
Script
application/javascript |
2a04:4e42::729 Fastly |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
owl.carousel.min.js
Show response
www.thisjav.com/static/owl-carousel/ |
23 KB 7 KB |
369ms
367ms |
Script
application/javascript |
2606:4700:30::6812:32a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
analytics.js
Show response
www.google-analytics.com/ |
43 KB 17 KB |
6ms
5ms |
Script
text/javascript |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
Show response
/ |
67 KB 0 |
Script
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
1Ptgg87LROyAm3Kz-C8CSKlv.woff2
fonts.gstatic.com/s/anton/v9/ |
8 KB 9 KB |
13ms
12ms |
Font
font/woff2 |
2a00:1450:4016:80d::2003 Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exosrv.com/ Frame 9C97 |
0 0 |
144ms
117ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exosrv.com/ Frame 628E |
0 0 |
146ms
122ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exosrv.com/ Frame 3920 |
0 0 |
145ms
118ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
NOZAq20HCpo
openload.co/embed/ Frame BCB8 |
0 0 |
95ms
59ms |
Document
text/html |
2606:4700::6810:a632 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 6C14 |
0 0 |
115ms
88ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 084A |
0 0 |
71ms
43ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Qmb2FAn4MPko8Xdy1wfJJyTSUAHZ43Yk3ex6xPuSE1czbH
cdn.thisjav.com/ipfs/ |
26 KB 27 KB |
112ms
112ms |
Image
image/jpeg |
2606:4700:30::6812:33a3 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame FDD9 |
0 0 |
106ms
78ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 5C7B |
0 0 |
61ms
38ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
embed.js
Show response
wwwthisjavcom.disqus.com/ Redirect Chain
|
65 KB 22 KB |
365ms
283ms |
Script
application/javascript |
151.101.120.134 Fastly |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
Redirect headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame DE21 |
0 0 |
108ms
77ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame E9F9 |
0 0 |
64ms
35ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame B282 |
0 0 |
64ms
20ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
collect
www.google-analytics.com/r/ |
35 B 101 B |
16ms
13ms |
Image
image/gif |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
crypta.js
Show response
statdynamic.com/lib/ |
697 KB 98 KB |
80ms
37ms |
Script
text/javascript |
2606:4700:30::681b:a41e Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
pop.js
Show response
cdn.popcash.net/ |
64 KB 26 KB |
50ms
11ms |
Script
application/javascript |
94.31.29.128 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
pixel.js
Show response
ca.clcknads.pro/v1/ |
1 KB 682 B |
74ms
13ms |
Script
text/plain |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 1641 |
0 0 |
124ms
102ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 9501 |
0 0 |
120ms
106ms |
Document
text/html |
95.211.229.247 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 4548 |
0 0 |
105ms
102ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
ee6891339e.css
use.fontawesome.com/ |
1 KB 685 B |
23ms
8ms |
Stylesheet
text/css |
23.111.9.35 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
font-awesome-css.min.css
use.fontawesome.com/releases/v4.7.0/css/ |
30 KB 8 KB |
11ms
7ms |
Stylesheet
text/css |
23.111.9.35 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
fontawesome-webfont.woff2
use.fontawesome.com/releases/v4.7.0/fonts/ |
75 KB 76 KB |
35ms
14ms |
Font
application/font-woff2 |
23.111.9.35 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
204 |
znWaa3gu
Show response
dcba.popcash.net/ |
0 117 B |
334ms
101ms |
XHR
text/plain |
52.4.72.68 Amazon.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
pop.js
Show response
c1.popads.net/ |
71 KB 28 KB |
59ms
11ms |
Script
application/javascript |
195.181.170.18 CDN77 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
f.png
ca.clcknads.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/ |
68 B 323 B |
15ms
14ms |
Image
image/png |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
/ |
4 KB 0 |
Media
video/mp4 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
23167
Show response
ca.clcknads.pro/v2/a/vsl/vst/ |
5 KB 3 KB |
16ms
15ms |
XHR
application/xml |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
preroll.engine
Show response
engine.phn.doublepimp.com/ |
6 KB 2 KB |
489ms
167ms |
XHR
text/xml |
69.89.69.120 NV Next LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
/
Show response
c.adsco.re/ |
5 B 404 B |
27ms
8ms |
Script
text/plain |
2606:4700::6811:a6ba Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
lounge.d49f53e192b9080ef8880a7c9b24f1c3.css
c.disquscdn.com/next/embed/styles/ |
102 KB 19 KB |
58ms
23ms |
Stylesheet
text/css |
2606:4700::6810:4ea6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
common.bundle.725e5c32c7072b4c17f23bf9fff6ac9a.js
Show response
c.disquscdn.com/next/embed/ |
243 KB 81 KB |
57ms
22ms |
Script
application/javascript |
2606:4700::6810:4ea6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
lounge.bundle.cc94b29f9dce7c0ab5182ca581ac27bb.js
Show response
c.disquscdn.com/next/embed/ |
385 KB 100 KB |
49ms
14ms |
Script
application/javascript |
2606:4700::6810:4ea6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
config.js
Show response
disqus.com/next/ |
6 KB 3 KB |
39ms
7ms |
Script
application/javascript |
151.101.128.134 Fastly |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
/
disqus.com/embed/comments/ Frame 226A |
0 0 |
251ms
250ms |
Document
text/html |
151.101.128.134 Fastly |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
c
Show response
serve.popads.net/ |
44 B 259 B |
257ms
226ms |
Script
text/javascript |
216.21.13.17 Total Uptime Tech... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
v3
Show response
pt.ptawe.com/vast/ |
4 KB 5 KB |
67ms
22ms |
XHR
text/xml |
93.93.51.191 DOCLER-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
206 |
80d9b7b11d05a91c1cebaac5cb5e427c.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/ |
32 KB 0 |
57ms
21ms |
Media
video/mp4 |
93.93.51.190 DOCLER-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
/ |
2 KB 0 |
Image
image/png |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
/ |
715 B 0 |
Image
image/png |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
206 |
80d9b7b11d05a91c1cebaac5cb5e427c.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/ |
46 KB 47 KB |
58ms
58ms |
Media
video/mp4 |
93.93.51.190 DOCLER-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
track.engine
engine.phn.doublepimp.com/ |
0 3 KB |
318ms
161ms |
Image
text/plain |
69.89.69.121 NV Next LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
hTi.gif
pt.ptawe.com/45j40/ |
43 B 309 B |
34ms
10ms |
Image
image/gif |
93.93.51.191 DOCLER-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
collect
www.google-analytics.com/ |
35 B 99 B |
6ms
5ms |
Image
image/gif |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
206 |
80d9b7b11d05a91c1cebaac5cb5e427c.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/ |
2 MB 0 |
11ms
11ms |
Media
video/mp4 |
93.93.51.190 DOCLER-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
alfie.f51946af45e0b561c60f768335c9eb79.js
Show response
c.disquscdn.com/next/embed/ |
19 KB 7 KB |
9ms
9ms |
Script
application/javascript |
2606:4700::6810:4ea6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
ping
Show response
links.services.disqus.com/api/ |
295 B 917 B |
120ms
47ms |
XHR
text/javascript |
151.101.120.64 Fastly |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
204 No Content |
imp
ca.clcknads.pro/v2/a/vsl/ |
0 493 B |
282ms
282ms |
Image
text/plain |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
collect
www.google-analytics.com/ |
35 B 99 B |
6ms
5ms |
Image
image/gif |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
s.png
ca.clcknads.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/ |
68 B 323 B |
21ms
20ms |
Image
image/png |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
track.engine
engine.phn.doublepimp.com/ |
0 285 B |
156ms
155ms |
Image
text/plain |
69.89.69.121 NV Next LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
track.engine
engine.phn.doublepimp.com/ |
0 285 B |
157ms
157ms |
Image
text/plain |
69.89.69.121 NV Next LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
collect
www.google-analytics.com/ |
35 B 99 B |
6ms
5ms |
Image
image/gif |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
Failed requests
These URLs were requested, but there was no response received. You will also see them in the list above.
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
- Domain
- www.thisjav.com
- URL
- blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Verdicts & Comments Add Verdict or Comment
64 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 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| y7ll function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop object| google_tag_data object| gaplugins object| gaGlobal object| gaData object| FontAwesomeCdnConfig string| cssUrl function| $ function| jQuery function| Tether function| videojs object| vttjs function| VTTRegion function| WebVTT object| $w object| $d object| $b object| _0x440b function| _0x53f8 object| CRLT object| miner string| uid string| wid string| popns object| IOarzRhPlP object| _pop number| starred function| s3EE object| leca object| Base64 function| pafban object| BJPPopAds object| detectZoom object| PopAds object| _pao function| disqus_config object| DISQUS string| vglnk_self function| vl_cB function| vl_disable undefined| vglnk_jsonp_15493336449250 object| vglnk13 Cookies
Cookies are little pieces of information stored in the browser of a user. Whenever a user visits the site again, he will also send his cookie values, thus allowing the website to re-identify him even if he changed locations. This is how permanent logins work.
Domain/Path | Expires | Name / Value | |||
---|---|---|---|---|---|
.thisjav.com/ | 1970-01-19 15:53:25 |
Name: _ga Value: GA1.2.286613835.1549333644 |
|||
.exoclick.com/ | 1970-01-18 22:23:40 |
Name: impressions Value: x%9CK%B42%B2%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%05%F2-%8C%0C%CC%CC%0DH%D4W%0B%00%F1%BB%1D%9C |
|||
.openload.co/ | 1970-01-19 07:07:49 |
Name: __cfduid Value: d546c24dcbb33fe5315e1a3ec1ce4cf5d1549333643 |
|||
.exosrv.com/ | 1970-01-18 22:23:40 |
Name: impressions Value: x%9CK%B42%B4%AA%CE%B42%B202037%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F8%E6%0F%CC |
|||
.exoclick.com/ | 1970-01-19 15:53:25 |
Name: __uvt Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D |
|||
.thisjav.com/ | 1970-01-18 22:23:40 |
Name: _gid Value: GA1.2.705655925.1549333644 |
|||
.exosrv.com/ | 1970-01-19 15:53:25 |
Name: __uvt Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48ba80b68.991409302260591416%22%3B%7D |
|||
.thisjav.com/ | 1970-01-18 22:22:13 |
Name: _gat Value: 1 |
|||
.disqus.com/ | 1978-01-11 21:30:57 |
Name: G_ENABLED_IDPS Value: google |
|||
www.thisjav.com/ | 1970-01-19 07:06:23 |
Name: csrftoken Value: BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg |
|||
openload.co/ | 1969-12-31 23:59:59 |
Name: _olbknd Value: w4 |
|||
.google.com/ | 1970-01-19 02:45:44 |
Name: NID Value: 158=Tcm0bDN90gPe3nigFlfRznBn7SC8WOPf7l0PDiy9FsmIJqKFkLqK9hiSsSoSHnCoutomLRvhlfCTIJNxLkMpUTgG6xqidp15BBXSdf1IFllN1nFHnxsglq2I-oKHNcsGhjX4CkZCNiHEJb0PiT5TwZvaup8iEYCzVwOF7gu4Iyg |
|||
.thisjav.com/ | 1970-01-19 07:07:49 |
Name: __cfduid Value: d40330371a87683fa8593327455b40d011549333641 |
65 Console Messages
A page may trigger messages to the console to be logged. These are often error messages about being unable to load a resource or execute a piece of JavaScript. Sometimes they also provide insight into the technology behind a website.
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: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
111
|
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,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
Security Headers
This page lists any security headers set by the main page. If you want to understand what these mean and how to use them, head on over to this page
Header | Value |
---|---|
X-Frame-Options | SAMEORIGIN |
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
ads.exosrv.com
ajax.googleapis.com
c.adsco.re
c.disquscdn.com
c1.popads.net
ca.clcknads.pro
cdn.popcash.net
cdn.thisjav.com
cdnjs.cloudflare.com
dcba.popcash.net
disqus.com
engine.phn.doublepimp.com
fonts.googleapis.com
fonts.gstatic.com
galleryn0.awemwh.com
links.services.disqus.com
maxcdn.bootstrapcdn.com
openload.co
pt.ptawe.com
serve.popads.net
statdynamic.com
syndication.exoclick.com
syndication.exosrv.com
use.fontawesome.com
vjs.zencdn.net
www.google-analytics.com
www.thisjav.com
wwwthisjavcom.disqus.com
www.thisjav.com
151.101.120.134
151.101.120.64
151.101.128.134
195.181.170.18
209.197.3.15
216.21.13.17
23.111.9.35
2606:2800:234:1f1f:1754:1fef:718:1223
2606:4700:30::6812:32a3
2606:4700:30::6812:33a3
2606:4700:30::681b:a41e
2606:4700::6810:4ea6
2606:4700::6810:a632
2606:4700::6811:a6ba
2606:4700::6813:c397
2a00:1450:4001:809::200a
2a00:1450:4001:821::200e
2a00:1450:4016:80a::200a
2a00:1450:4016:80d::2003
2a04:4e42::729
52.4.72.68
69.89.69.120
69.89.69.121
88.208.59.100
93.93.51.190
93.93.51.191
94.31.29.128
95.211.229.246
95.211.229.247
006dde1b331eb5ff5a0ec37133b77cf6120bff17b51d01cd0fa854a84c8c14c7
09988d6d807db6e07cd329d778a391ffbc5ce8afc0fc4f3d74ac3ffea33bb5cf
0a769c6e43613c065b9806e2e544f290fc64dc3d8fcfd07942d249dfb1145462
0e907ea01cfc00c0d11c152d0bd7c3be94b715a6e54c7a815c70bc266c8a5b1c
19ba920e285740334e022bd97d6dfb8f7c390db18d301346e2b527e4fe576db9
1eddf699e82399631b3bd0458a4e38af2567b7f6790f557768fb298d2a026928
1fcb86d36811576627fc31b30bc683e5bad72f13e4bc9fae2616d44c018fed62
209c466284a803d69c526deb2926a0eaa59e86c12ba6fc3b8e35cc67c2e74457
20eca86fc8726b99832c2676311a74d5bc8727c18acc0616dede12e73122f7d0
25a0f8d50bd83be4e211c522bbfa953423d1db44641fc48a499b4581fa5e0670
2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
414ab94a7cfdd2de43bb1dc22cd27919af39167060cc463b2383874735bf109f
47835c70657e2b2f6905562aa06b79725267fb8e0839d5a6a6835481cd6e363f
4d28ff98dfec0477d81cce7cc7cb5b3da78c1bfcde09110a66ac8f1ef9bf5d8f
4dc77ee90dc2225b57b31d28fe06213cd6c491bdc7249a6e70ebd003b72c5702
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5b9573e1023da775390e9284ec0eb1c606df9b468a28980055b4a6aa804f4350
5ed444a63cef25da50f57975a7d24b870e6365e37b23c5b0b75ec656e92bcf83
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058
6526c1f7872675f5472d267ada2ed40d08c38a9b5aa28f972def6761d6dae987
66fb37f0a348652be4f1afc6bd5bbfa1de656d8ed495d3ddd9c19fa84d448cb1
6b4b7273174adcb9d054653157fe42d557468156b92ccfe45632659144f07058
6f8bb21ddcda4c878465ac485762ebc981d423b0611babd5e69b6889137565ca
754bd528f878ecd01176ab82fa6f43510635b37acdbf46b42db680a2a023d72c
77507fb2c0290277f546178ea3d1a0002fcdf19be490fe5eed268e9e245d029c
7765584a4f9f0b628f4b8c06c38892935dfe63e03d7b5a04a0b54f91d872382f
7abbf02ffa23039d495aef38fd9956bb01f63dbbe4b734c3947cd1296667ec9f
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
86b36d9dccf5c92a1f15ed4dda109d36e8586144fd8aaf3203bf3e8705669d26
88f50e135f03adf8d62ad4d460e7f99c53ea6f62c363d9d2af526e678327bacb
8a156a1dea9c9cdbfec4bef488106e24663c0c0738c4bf36ecf785514c6a2641
8fe5ebbe44388c9f7d1e3d2924a3ebea4d110a0c430d24ecdcf06a2eb5f610c7
91ee720f3c25ec6b209d88019c20e2592340ff1fe1c94f3d5431e5fd1e77e5dc
940310a1112acc00ad5248d807cfdd39cefd8b310ec734f14fa3a488caae36d4
94872d2b59ab34deb6ba065a72f7259e97e18c65cd1b115e8d4e096c32e92d58
96c458c8a105b9437ab89bc9677fb1b71aa212bb1419c6ca5f38317619894fe6
974fb8c880eb98ae22b40d482a0d8123461225d7f360fb3a11a99a6ddf1b3990
9887e1bff87730bab759289295dbae64edec691373cee7f52caf30df3de5dc96
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
9d781128a8ece413b003d5612b8398bf9340ef7f5b751d12bd125ba523d3ceb5
9ff6922b326eccf9fb2c2eb6170e4f268e02d2ed4272ece521de1b29333d9ec0
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b
a8d842dc045c65986e7b50952261d47b62cab35c5829700e90d1965ec11692e3
adf17cb43830d983dd1d39bb550f38852f06fea77daf6a9058d289ce1e8528e6
b062930743fff47542480873f29329d39fa7101a7f7a204685614cabf3805cc3
b4221c88c806b7201fef40ea006fde86282b2a93a1be048dcfd45b5b1f736160
b736d71686749724687fefac932f4778ee6aada4ca4aa9a87efcbc150aa980f4
bbbb0ffd2b7f74d99ab11edc18f0a73ee170745524644a785a03be193eb13a04
bbcd95fd80a84a0807e074a1c523b852d74c14af6dbaadf91bb4d78507e39fb6
bcbc0b6ad18d98bf61139e1d7714e4fd27806afa17077083d76294cb00508a1b
bd600953b5e2430f5aabd30f75cb88c2f3d1a51be55af79f937a5e2a62b0b8ae
c473df59254bce8379d30c7ad70593f4228f9ce9c0ea33b3f12be1c9790c50f4
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda
d1ae5f5431e8793c9a91cc08574a682d0465a3e06cbad6ac51eefbe5f8ebf568
d1ca66175d8c8247c163f4c665d1a9a15e24ced1bc0d96861187e0e32fa4d2be
d57ac77f37776038776b9b872eae2794e9d22c49754c920b734f1ea215531704
d66b9abee05f2c104f168392322f11d642ff74a5d633f8e4740859b03521917f
dbfa65639ab1fdc6fd96d6210929797cccc4ec717a5e32c9344444ccac839cba
dd8eb8631068f2799f923f35e8b5034693a69fa0efbdbc0d316bde9e707d86a8
dfdce7f4353d8bba19b1fa630a23856e9fbb2c5aca5fb89bede321ac6d5a9cbb
e0e2bc4e1d3ee5024c4e1aa58a6cad9aa42fc63a8c89ce18013a1c8f2b94875c
e11d5efa238053983be6687278ebc93972ffe208bf5df2f5d3fae9dbf15aaf0e
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
eda8f00e9255746e7620848227aca122053845c9b4a90f1b3e26b4cd99af9e25
f30258528fe92de2b010ac8190b77cbb722b9c45f9c7521b1af06b53324fc56c
f338c6856f96a14b4a0b95c4f40cf7e317612ff6c949c109ce9a6add6562d8d1
fba4729df172cf704b324e468cb3b0054e6ec85bbc329b1a18d01d9dc0bab8ec
ff23e90cdc1653e38918218f9657278de8c99f3de1ee4d959a9c50492c33104c
ff9a470d98767efd5e6489b27e24e1b41e408382ea0e3ca2b6d4fb7cb8dd4fff