{"id":6256,"date":"2026-07-10T01:53:39","date_gmt":"2026-07-10T01:53:39","guid":{"rendered":"https:\/\/allenglish4u.com\/?page_id=6256"},"modified":"2026-07-12T03:24:55","modified_gmt":"2026-07-12T03:24:55","slug":"celpip-set-2-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-2-test-1-reading\/","title":{"rendered":"CELPIP Set 2 Test 1 \u2013 Reading Practice Test"},"content":{"rendered":"<div class=\"clpr-wrap\" id=\"clprWrap\">\n<section class=\"clpr-hero\">\n<div class=\"clpr-aurora\"><span><\/span><span><\/span><span><\/span><\/div>\n<div class=\"clpr-hero-badges\"> <span class=\"clpr-badge-brand\">AllEnglish4U<\/span> <span class=\"clpr-badge-set\">CELPIP General &middot; Set 2<\/span> <\/div>\n<h1>Reading Practice Test 1<\/h1>\n<p class=\"clpr-hero-sub\">4 parts &middot; 38 questions &middot; about 55 minutes. Read each passage and choose the best option for every drop-down. Official Paragon question set with verified answer key.<\/p>\n<div class=\"clpr-hero-chips\"> <span class=\"clpr-chip\">Part 1 &middot; Correspondence<\/span> <span class=\"clpr-chip\">Part 2 &middot; Apply a Diagram<\/span> <span class=\"clpr-chip\">Part 3 &middot; Information<\/span> <span class=\"clpr-chip\">Part 4 &middot; Viewpoints<\/span> <\/div>\n<p> <button class=\"clpr-cta\" id=\"clprStart\">Start the Reading Test<\/button> <\/section>\n<div class=\"clpr-toolbar\" id=\"clprToolbar\" hidden> <span class=\"clpr-score-chip\" id=\"clprScoreChip\">0 \/ 38 answered<\/span> <span class=\"clpr-toolbar-spacer\"><\/span> <button class=\"clpr-tbtn\" id=\"clprReset\">Reset<\/button> <button class=\"clpr-tbtn clpr-tbtn-check\" id=\"clprCheck\">Check answers<\/button> <\/div>\n<div class=\"clpr-sim\" id=\"clprSim\" hidden>\n<div class=\"clpr-dots\" id=\"clprDots\"><\/div>\n<div class=\"clpr-cat\" id=\"clprCat\"><\/div>\n<\/p><\/div>\n<div class=\"clpr-results\" id=\"clprResults\" hidden><\/div>\n<\/p><\/div>\n<p><script>eval(atob(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDIpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAyIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgTXIuIE1leWVyLDwvcD48cD5JIGFtIHdyaXRpbmcgYWJvdXQgdGhlIG5ldyBkcml2aW5nIHJlc3RyaWN0aW9ucyB5b3VyIGdvdmVybm1lbnQgZGVwYXJ0bWVudCBpcyBzdWdnZXN0aW5nIGZvciBuZXcgZHJpdmVycyBpbiB0aGUgcHJvdmluY2UuIEkgZGVmaW5pdGVseSBhZ3JlZSB0aGF0IGNlcnRhaW4gcmVzdHJpY3Rpb25zIGFyZSBuZWNlc3NhcnkgdG8gZW5zdXJlIHJvYWQgc2FmZXR5LiBIb3dldmVyLCBJIGRpc2FncmVlIHdpdGggb25lIG1ham9yIHBvaW50LjwvcD48cD5Zb3VyIGRlcGFydG1lbnQgaXMgcHJvcG9zaW5nIGEgXHUyMDFjc2luZ2xlIHBhc3Nlbmdlclx1MjAxZCByZXN0cmljdGlvbiB0aGF0IGFsbG93cyBhIG5vdmljZSBkcml2ZXIgdG8gaGF2ZSBvbmUgcGFzc2VuZ2VyLCB1bmxlc3MgdGhlIHBhc3NlbmdlcnMgYXJlIGltbWVkaWF0ZSBmYW1pbHkgbWVtYmVycy4gWW91ciBsb2dpYyBpcyBzaW1wbHkgdGhhdCBub3ZpY2UgZHJpdmVycyBhcmUgdXN1YWxseSB0ZWVuYWdlcnMsIGFuZCBhIGNhciBmdWxsIG9mIHRlZW5hZ2VycyBpcyBkaXN0cmFjdGluZyB0byB0aGUgZHJpdmVyLiBZb3Ugc3RhdGUgdGhhdCB0aGlzIHJ1bGUgaGFzIGRvbmUgbXVjaCB0byByZWR1Y2UgdGhlIGluY2lkZW5jZSBvZiBjcmFzaGVzIGluIG90aGVyIHByb3ZpbmNlcy48L3A+PHA+VGhlcmUgaXMgc2ltcGx5IG5vIGNvbmNsdXNpdmUgZXZpZGVuY2UgdG8gc3VwcG9ydCB0aGlzIGNsYWltLiBJbiBmYWN0LCB0aGVyZVx1MjAxOXMgYSBtYWpvciByZWFzb24gd2h5IHRoZSBcdTIwMWNvbmUtcGFzc2VuZ2VyXHUyMDFkIHJ1bGUgbWlnaHQgYWN0dWFsbHkgbGVhZCB0byBtb3JlIGFjY2lkZW50cyBvbiB0aGUgcm9hZC4gVGFrZSBmb3IgZXhhbXBsZSBhIHNpdHVhdGlvbiB0aGF0IGhhcHBlbmVkIGxhc3QgU2F0dXJkYXkuIE15IDE2LXllYXItb2xkIHNvbiwgSm9obiwgd2hvIHJlY2VudGx5IGdvdCBoaXMgbm92aWNlIGRyaXZlclx1MjAxOXMgbGljZW5zZSwgbmVlZGVkIHRvIHdvcmsgb24gYSBzY2hvb2wgcHJvamVjdCB3aXRoIGZpdmUgb2YgaGlzIGNsYXNzbWF0ZXMuIFRoZXkgd2VyZSBtYWtpbmcgYSBzaG9ydCBmaWxtIGZvciB0aGVpciBoaXN0b3J5IGNsYXNzLCB3aGljaCByZXF1aXJlZCB0aGVtIHRvIGRyaXZlIGFyb3VuZCB0aGUgY2l0eSB2aXNpdGluZyB2YXJpb3VzIG11c2V1bXMuIEpvaG4gaGFzIHVzZSBvZiBteSB2YW4sIHdoaWNoIHNlYXRzIHNpeCBwZW9wbGUuIFVuZGVyIHRoZSBjdXJyZW50IGxhdywgaGUgY2FuIGRyaXZlIGhpcyBmcmllbmRzLiBIZSBpcyBhIHNhZmUgZHJpdmVyIGFuZCBubyBhY2NpZGVudHMgaGFwcGVuZWQuIFVuZGVyIHRoZSBwcm9wb3NlZCByZXN0cmljdGlvbiwgSm9obiB3b3VsZCBiZSBsZWdhbGx5IGFsbG93ZWQgdG8gZHJpdmUgb25seSBvbmUgcGFzc2VuZ2VyLiBIaXMgZnJpZW5kcywgd2hvIGFyZSBhbHNvIG5ldyBkcml2ZXJzLCB3b3VsZCB0aGVuIGhhdmUgdG8gdGFrZSB0d28gb3RoZXIgdmVoaWNsZXMuIFRoZXJlZm9yZSwgdGhlIFx1MjAxY29uZS1wYXNzZW5nZXJcdTIwMWQgcnVsZSB3b3VsZCBhY3R1YWxseSB0cmlwbGUgdGhlIHBvc3NpYmlsaXR5IG9mIGEgY3Jhc2ggYnkgcmVxdWlyaW5nIHRoZSB1c2Ugb2YgdGhyZWUgY2Fycywgd2hlbiBvbmx5IG9uZSB3YXMgbmVlZGVkISBXaGVyZVx1MjAxOXMgdGhlIHNhZmV0eSBpbiB0aGF0PzwvcD48cD5CZWNhdXNlIG1vc3Qgbm92aWNlIGRyaXZlcnMgYXJlIHRlZW5hZ2VycywgdGhlIHByb3Bvc2FsIGZvciB0aGUgXHUyMDFjb25lLXBhc3Nlbmdlclx1MjAxZCBydWxlIHdpbGwgbGVhZCB0byBtb3JlIGluZXhwZXJpZW5jZWQgdGVlbmFnZSBkcml2ZXJzIGJlaW5nIG9uIHRoZSByb2FkIGF0IG9uZSB0aW1lLiBXaGVyZSB0d28gb3IgdGhyZWUgdGVlbmFnZXJzIGFyZSBmb2xsb3dpbmcgZWFjaCBvdGhlciBpbiBzZXBhcmF0ZSBjYXJzLCB0aGV5IG1heSBhY3QgZm9vbGlzaGx5IGJ5IGRyaXZpbmcgdG9vIGZhc3Qgb3IgcGFzc2luZyBkYW5nZXJvdXNseS4gSSByZWNvZ25pemUgdGhlIGdvb2QgaW50ZW50aW9uIGJlaGluZCB5b3VyIHByb3Bvc2FsLCBidXQgSSB3b25kZXIgaWYgaXQgd2lsbCBhY3R1YWxseSBiZSBlZmZlY3RpdmUuPC9wPjxwPlNpbmNlcmVseSw8L3A+PHA+SmFtZXMgQnJhbmR0PC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIG1lc3NhZ2UuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IkphbWVzIEJyYW5kdCBpcyBhIiwib3B0aW9ucyI6WyJ0ZWVuYWdlIGRyaXZlci4iLCJkcml2aW5nIGluc3RydWN0b3IuIiwibmV3IGRyaXZlclx1MjAxOXMgcGFyZW50LiIsIm5vdmljZSBkcml2ZXIuIl0sImtleSI6M30seyJuIjoyLCJwcmUiOiJUaGUgcHJvcG9zZWQgcnVsZSB3aWxsIHByb2hpYml0IG5ldyBkcml2ZXJzIGZyb20gY2FycnlpbmciLCJvcHRpb25zIjpbIm1vcmUgdGhhbiBvbmUgbm9uLWZhbWlseSBwYXNzZW5nZXIuIiwidGVlbmFnZXJzIGFzIHBhc3NlbmdlcnMuIiwibm9uLWZhbWlseSBtZW1iZXJzIGFzIHBhc3NlbmdlcnMuIiwib3RoZXIgbmV3IGRyaXZlcnMgYXMgcGFzc2VuZ2Vycy4iXSwia2V5IjoxfSx7Im4iOjMsInByZSI6IkFjY29yZGluZyB0byBKYW1lcywgdGhlIHByb3Bvc2VkIHJ1bGUiLCJvcHRpb25zIjpbIm1heSByZWR1Y2UgYWNjaWRlbnRzIGJ5IG5ldyBkcml2ZXJzLiIsImlzIGJhc2VkIG9uIGEgY2FyZWZ1bCBzdHVkeSBvZiB0aGUgZmFjdHMuIiwiaXMgdW5mYWlyIGZvciB0aGUgcGFyZW50cyBvZiBuZXcgZHJpdmVycy4iLCJtYXkgaW5jcmVhc2UgdGhlIHJpc2sgb2YgYWNjaWRlbnRzLiJdLCJrZXkiOjR9LHsibiI6NCwicHJlIjoiSWYgdGhlIHByb3Bvc2VkIHJ1bGUgYmVjb21lcyBsYXcsIEpvaG4iLCJvcHRpb25zIjpbImNhblx1MjAxOXQgZHJpdmUgaGlzIDUgY2xhc3NtYXRlcy4iLCJjYW4gZHJpdmUgYSB2YW4gd2l0aCA1IHBhc3NlbmdlcnMuIiwiY2FuIGRyaXZlIHdpdGhvdXQgaGlzIHBhcmVudFx1MjAxOXMga25vd2xlZGdlLiIsImNhblx1MjAxOXQgZHJpdmUgaGlzIGZhbWlseSBtZW1iZXJzLiJdLCJrZXkiOjF9LHsibiI6NSwicHJlIjoiSm9obiIsIm9wdGlvbnMiOlsiYWN0ZWQgaXJyZXNwb25zaWJseSB3aXRoIGhpcyBwYXNzZW5nZXJzLiIsImRpZG5cdTIwMTl0IHRha2UgYW55IHBhc3NlbmdlcnMuIiwia25vd3MgaGlzIHJlc3BvbnNpYmlsaXRpZXMgYXMgYSBkcml2ZXIuIiwid2FzIHByZXNzdXJlZCB0byBkcml2ZSBmb29saXNobHkgYW5kIGRhbmdlcm91c2x5LiJdLCJrZXkiOjN9LHsibiI6NiwicHJlIjoiSmFtZXMgQnJhbmR0IGJlbGlldmVzIHRoZSBwcm9wb3NlZCBydWxlIiwib3B0aW9ucyI6WyJtaWdodCBzdG9wIG5ldyBkcml2ZXJzIGZyb20gcHJhY3RpY2luZy4iLCJ3aWxsIHB1dCBtb3JlIG5ldyBkcml2ZXJzIG9uIHRoZSByb2FkLiIsIm1heSBwcmV2ZW50IHlvdW5nIHBlb3BsZSBmcm9tIGdldHRpbmcgYXJvdW5kLiIsIndpbGwgbWFrZSBwYXJlbnRzIG9mIG5ldyBkcml2ZXJzIG1vcmUgcmVzcG9uc2libGUuIl0sImtleSI6Mn1dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiSGVyZSBpcyBhIHJlc3BvbnNlIHRvIHRoZSBtZXNzYWdlLiBDb21wbGV0ZSB0aGUgcmVzcG9uc2UgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiRGVhciBNci4gQnJhbmR0LFxuXG5PbiBiZWhhbGYgb2YgR2VycnkgTWV5ZXIsIEkgd291bGQgbGlrZSB0byB0aGFuayB5b3UgZm9yICIseyJiIjo3LCJvcHRpb25zIjpbInNoYXJpbmcgeW91ciBvcGluaW9ucy4iLCJzdXBwb3J0aW5nIG91ciBwb2xpY2llcy4iLCJleHBsYWluaW5nIHRoZSBydWxlcyB0byB5b3VyIHNvbi4iLCJzdWdnZXN0aW5nIHRoZSBcdTIwMWNzaW5nbGUgcGFzc2VuZ2VyXHUyMDFkIHJ1bGUuIl0sImtleSI6MX0sIiBZb3UgYXJndWVkIHRoYXQgdGhlIFx1MjAxY3NpbmdsZSBwYXNzZW5nZXJcdTIwMWQgcmVzdHJpY3Rpb24gIix7ImIiOjgsIm9wdGlvbnMiOlsid2lsbCBzdG9wIHlvdW5nIGRyaXZlcnMgZnJvbSBoZWxwaW5nIHRoZWlyIGZhbWlsaWVzLiIsImlzIGEgdmVyeSBnb29kIHdheSB0byBpbmNyZWFzZSByb2FkIHNhZmV0eS4iLCJtYXkgaW5jcmVhc2UgdGhlIHJpc2sgb2YgYWNjaWRlbnQgYW5kIGluanVyeS4iLCJ3aWxsIHRlYWNoIHlvdW5nIGRyaXZlcnMgdG8gYmUgbW9yZSByZXNwb25zaWJsZS4iXSwia2V5IjozfSwiXG5cbldlIHVuZGVyc3RhbmQgeW91ciBjb25jZXJucy4gSW4gZmFjdCwgd2UgaW5pdGlhbGx5IHNoYXJlZCB5b3VyIGNvbmNlcm5zIGFib3V0IHRoaXMgaXNzdWUuIEhvd2V2ZXIsIHJlc2VhcmNoIGhhcyBzaG93biB1cyB0aGF0IG91ciBwcm9wb3NlZCBydWxlIHdpbGwgd29yay4gV2UgZm91bmQgdGhhdCB0aGUgaGlnaGVzdCByaXNrIG9mIGFjY2lkZW50cyBvY2N1cnMgd2hlbiB5b3VuZyBkcml2ZXJzIGFyZSBkcml2aW5nICIseyJiIjo5LCJvcHRpb25zIjpbImluIHNlcGFyYXRlIGNhcnMuIiwiZmFtaWx5IG1lbWJlcnMuIiwidGhlaXIgcGFyZW50cy4iLCJzZXZlcmFsIHRlZW5hZ2Vycy4iXSwia2V5Ijo0fSwiIEluIGFkZGl0aW9uLCByZXNlYXJjaCBzaG93cyB0aGF0IHBhcmVudHMgb2Z0ZW4gZGlzY291cmFnZSB0aGVpciB0ZWVuYWdlcnMgZnJvbSBkcml2aW5nIHdpdGggdGhlaXIgZnJpZW5kcywgc28gdGhlIHByb3Bvc2VkIHJ1bGUgYWN0dWFsbHkgIix7ImIiOjEwLCJvcHRpb25zIjpbImRpc2FncmVlcyB3aXRoIiwic3VwcG9ydHMiLCJyZXN1bHRzIGZyb20iLCJjb250cmFkaWN0cyJdLCJrZXkiOjJ9LCIgbWFqb3JpdHkgb3Bpbmlvbi5cblxuQ2xlYXJseSwgd2UgYm90aCAiLHsiYiI6MTEsIm9wdGlvbnMiOlsiYWdyZWUgd2l0aCB0aGUgbmV3IHByb3Bvc2FsLiIsImNhcmUgYWJvdXQgdGhlIHNhZmV0eSBvZiB5b3VuZyBkcml2ZXJzLiIsImhhdmUgY29uY2VybnMgYWJvdXQgdGhlIG5ldyBwcm9wb3NhbC4iLCJkaXNhZ3JlZSB3aXRoIE1yLiBCcmFuZHRcdTIwMTlzIGlkZWFzLiJdLCJrZXkiOjJ9LCJcblxuUmVzcGVjdGZ1bGx5IHlvdXJzLFxuTWFyaWVsIFNpbmdoIl19XX0seyJpZCI6MiwibmFtZSI6IlJlYWRpbmcgUGFydCAyOiBSZWFkaW5nIHRvIEFwcGx5IGEgRGlhZ3JhbSIsInRpbWUiOiI4IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgZGlhZ3JhbS4iLCJodG1sIjoiPHRhYmxlIHN0eWxlPVwid2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7dGFibGUtbGF5b3V0OmZpeGVkO2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS4zODt3b3JkLXdyYXA6YnJlYWstd29yZFwiPjx0aGVhZD48dHI+PHRoIHN0eWxlPVwicGFkZGluZzo5cHggMTFweDtib3JkZXI6MXB4IHNvbGlkICNDNENDRDg7YmFja2dyb3VuZDojRUVGMkY3O2NvbG9yOiMwRDIzNTI7Zm9udC1mYW1pbHk6R2VvcmdpYSwnVGltZXMgTmV3IFJvbWFuJyxzZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE2cHg7dGV4dC1hbGlnbjpsZWZ0O3doaXRlLXNwYWNlOm5vd3JhcFwiPlRodXJzLiwgSnVseSAxMjwvdGg+PHRoIHN0eWxlPVwicGFkZGluZzo5cHggMTFweDtib3JkZXI6MXB4IHNvbGlkICNDNENDRDg7YmFja2dyb3VuZDojRUVGMkY3O2NvbG9yOiMwRDIzNTI7Zm9udC1mYW1pbHk6R2VvcmdpYSwnVGltZXMgTmV3IFJvbWFuJyxzZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE2cHg7dGV4dC1hbGlnbjpsZWZ0O3doaXRlLXNwYWNlOm5vd3JhcFwiPkZyaS4sIEp1bHkgMTM8L3RoPjx0aCBzdHlsZT1cInBhZGRpbmc6OXB4IDExcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O2JhY2tncm91bmQ6I0VFRjJGNztjb2xvcjojMEQyMzUyO2ZvbnQtZmFtaWx5Okdlb3JnaWEsJ1RpbWVzIE5ldyBSb21hbicsc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246bGVmdDt3aGl0ZS1zcGFjZTpub3dyYXBcIj5TYXQuLCBKdWx5IDE0PC90aD48dGggc3R5bGU9XCJwYWRkaW5nOjlweCAxMXB4O2JvcmRlcjoxcHggc29saWQgI0M0Q0NEODtiYWNrZ3JvdW5kOiNFRUYyRjc7Y29sb3I6IzBEMjM1Mjtmb250LWZhbWlseTpHZW9yZ2lhLCdUaW1lcyBOZXcgUm9tYW4nLHNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweDt0ZXh0LWFsaWduOmxlZnQ7d2hpdGUtc3BhY2U6bm93cmFwXCI+U3VuLiwgSnVseSAxNTwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT48dHI+PHRkIHN0eWxlPVwicGFkZGluZzo4cHggMTFweDtib3JkZXI6MXB4IHNvbGlkICNDNENDRDg7dmVydGljYWwtYWxpZ246dG9wXCI+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+ODozMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+V2FrZSBVcDwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj45OjAwPC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5CcmVha2Zhc3Q8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+OTozNSBcdTIwMTMgMTA6NDU8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPkVuZ2xpc2ggTGVzc29uIEk8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+MTA6NDUgXHUyMDEzIDExOjU1PC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5FbmdsaXNoIExlc3NvbiBJSTwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj4xMjowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+THVuY2g8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+MTowMCBcdTIwMTMgMjoxMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+RW5nbGlzaCBMZXNzb24gSUlJPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjI6MzA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPlZhbmNvdXZlciBBcXVhcml1bSBNYXJpbmUgU2NpZW5jZSBDZW50cmU8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+NDowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+VmFuY291dmVyIEhhcmJvdXIgQ2VudHJlPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjY6MzA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPlN1cHBlcjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj43OjAwPC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5HYW1lcyBhbmQgVGVudCBQcmFjdGljZSBOaWdodDwvc3Bhbj48L2Rpdj48L3RkPjx0ZCBzdHlsZT1cInBhZGRpbmc6OHB4IDExcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O3ZlcnRpY2FsLWFsaWduOnRvcFwiPjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjg6MzA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPldha2UgVXA8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+OTowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+QnJlYWtmYXN0PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjk6MzUgXHUyMDEzIDEwOjE1PC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5FbmdsaXNoIExlc3NvbiBJPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjEwOjE1IFx1MjAxMyAxMTowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+RW5nbGlzaCBMZXNzb24gSUk8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+MTE6MDAgXHUyMDEzIDExOjQ1PC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5FbmdsaXNoIExlc3NvbiBJSUk8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+MTE6NDU8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPkx1bmNoPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjEyOjE1PC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5MZWF2ZSBmb3IgRnVsbCBEYXkgRXhjdXJzaW9uPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+V2VzdCBDb2FzdCBSYWluZm9yZXN0PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjc6MDA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPlN1cHBlcjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj45OjAwPC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5SZXR1cm4gdG8gY2FtcHVzIHJlc2lkZW5jZTwvc3Bhbj48L2Rpdj48L3RkPjx0ZCBzdHlsZT1cInBhZGRpbmc6OHB4IDExcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O3ZlcnRpY2FsLWFsaWduOnRvcFwiPjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjg6MzA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPldha2UgVXA8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+OTowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+QnJlYWtmYXN0PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjk6MzUgXHUyMDEzIDEwOjQ1PC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5FbmdsaXNoIExlc3NvbiBJPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjEwOjQ1IFx1MjAxMyAxMTo1NTwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+RW5nbGlzaCBMZXNzb24gSUk8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+MTI6MDA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPkx1bmNoPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjE6MDAgXHUyMDEzIDI6MTA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPkVuZ2xpc2ggTGVzc29uIElJSTwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj4zOjAwPC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5Sb2NrIENsaW1iaW5nPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjc6MDA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPlN1cHBlcjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj44OjAwPC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5UYWxlbnQgTmlnaHQ6IEEgU3Bvb2Ygb2YgUmVhbGl0eSBTaG93czwvc3Bhbj48L2Rpdj48L3RkPjx0ZCBzdHlsZT1cInBhZGRpbmc6OHB4IDExcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O3ZlcnRpY2FsLWFsaWduOnRvcFwiPjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjg6MzA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPldha2UgVXA8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+OTowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+QnJlYWtmYXN0PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjk6MzUgXHUyMDEzIDEwOjQ1PC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5FbmdsaXNoIExlc3NvbiBJPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjEwOjQ1IFx1MjAxMyAxMTo1NTwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+RW5nbGlzaCBMZXNzb24gSUk8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+MTI6MDA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPkx1bmNoPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjE6MDAgXHUyMDEzIDI6MTA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPkVuZ2xpc2ggTGVzc29uIElJSTwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPVwibWFyZ2luOjAgMCA4cHggMFwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj4yOjMwPC9zcGFuPjxicj48c3BhbiBzdHlsZT1cImNvbG9yOiMxZTI3MzNcIj5NdXNldW0gb2YgQW50aHJvcG9sb2d5ICYgQm90YW5pY2FsIEdhcmRlbiBhdCBVQlo8L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT1cIm1hcmdpbjowIDAgOHB4IDBcIj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+NzowMDwvc3Bhbj48YnI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMWUyNzMzXCI+U3VwcGVyPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9XCJtYXJnaW46MCAwIDhweCAwXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPjg6MDA8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPVwiY29sb3I6IzFlMjczM1wiPlBhY2sgYW5kIGdldCByZWFkeSBmb3IgdGhlIGNhbXBpbmcgdHJpcDwvc3Bhbj48L2Rpdj48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsLiBDb21wbGV0ZSB0aGUgZW1haWwgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiIsImJvZHkiOlsiU3ViamVjdDogRW5nbGlzaCBhcyBhIFNlY29uZCBMYW5ndWFnZSBTdW1tZXIgQ2FtcFxuVG86IFJheSBDYXJseSA8ci5jYXJseUB1YnouY2E+XG5Gcm9tOiBBcmllcyBTaW5nbGVyIDxhLnNpbmdsZXJAdWJ6LmNhPlxuXG5IaSBSYXksXG5cblNhcmFoIGFuZCBJIG1ldCB0aGlzIG1vcm5pbmcgdG8gZmluYWxpemUgdGhlIFN1bW1lciBDYW1wIHNjaGVkdWxlIGJ1dCB3ZSBuZWVkIHlvdXIgaW5wdXQgYmVmb3JlIHdlIG1ha2UgaXQgb2ZmaWNpYWwsIGFuZCBpbmZvcm0gdGhlIHRlYWNoZXJzIGFib3V0IHRoZWlyICIseyJiIjoxLCJvcHRpb25zIjpbImNsYXNzIHRpbWVzLiIsImFjY29tbW9kYXRpb24gZGV0YWlscy4iLCJhY3Rpdml0eSBjb3N0cy4iLCJzdHVkZW50IG51bWJlcnMuIl0sImtleSI6MX0sIiBMYXN0IHllYXIsIGEgY291cGxlIG9mIHRlYWNoZXJzIGhhZCB0byBydXNoIHRocm91Z2ggdGhlIG1hdGVyaWFsLCBkbyB5b3UgdGhpbmsgdGhhdCAiLHsiYiI6Miwib3B0aW9ucyI6WyJhbGxvd2luZyBzdHVkZW50cyB0byBnZXQgbW9yZSBzbGVlcCBpbiB0aGUgbW9ybmluZyIsImdpdmluZyBzdHVkZW50cyBvcHBvcnR1bml0aWVzIHRvIHNvY2lhbGl6ZSBvdXRzaWRlIGNhbXB1cyIsIm1ha2luZyB0aGUgbWF0ZXJpYWwgbW9yZSBhcHBlYWxpbmcgZm9yIHRlYWNoZXJzIiwic3RhcnRpbmcgdGhlIGRheSBhdCA5IGEubS4gaW5zdGVhZCBvZiA5OjM1IGEubS4iXSwia2V5Ijo0fSwiIHdvdWxkIHJlc29sdmUgdGhlIHByb2JsZW0\/XG5cbllvdSB3aWxsIHNlZSB0aGF0IHRoaXMgeWVhciAiLHsiYiI6Mywib3B0aW9ucyI6WyJ0aGVyZSBpcyBvbmx5IG9uZSBzb2NpYWwgYWN0aXZpdHkgcGVyIGRheS4iLCJhbGwgY2xhc3NlcyBhcmUgY29uY2VudHJhdGVkIGJlZm9yZSBsdW5jaC4iLCJ0aGVyZSBhcmUgbm8gc29jaWFsIGFjdGl2aXRpZXMgaW4gdGhlIG1vcm5pbmcuIiwic3R1ZGVudHMgd2lsbCBub3QgbGVhdmUgdGhlIGNhbXB1cyBldmVyeWRheS4iXSwia2V5IjozfSwiIEkgZGVkaWNhdGVkIHRoZSBhZnRlcm5vb25zIGZvciBzaWdodHNlZWluZyBpbnN0ZWFkLiBIb3cgZG8geW91IGZlZWwgYWJvdXQgdGhhdD9cblxuQWxzbywgbmVpdGhlciBvZiB1cyBrbm93cyB3aGV0aGVyIHdlIGFyZSBwcm92aWRpbmcgYWxsIG1lYWxzIG9yIGp1c3QgYnJlYWtmYXN0IGFuZCBzdXBwZXIgbGlrZSBsYXN0IHllYXIuIFdlIG9ubHkga25vdyB0aGF0IHRoZSAiLHsiYiI6NCwib3B0aW9ucyI6WyJvdXRpbmdzIiwibGVzc29ucyIsImJvb2tzIiwiYWNjb21tb2RhdGlvbiJdLCJrZXkiOjF9LCIgYXJlIGluY2x1ZGVkIGluIHRoZSB0dWl0aW9uIHVuZGVyIHNvY2lhbCBhY3Rpdml0aWVzLiBGaW5hbGx5LCB3ZSBuZWVkIHRvIG1ha2UgYSBmaW5hbCBkZWNpc2lvbiBhYm91dCAiLHsiYiI6NSwib3B0aW9ucyI6WyJ3aG9cdTIwMTlzIGNoYXBlcm9uaW5nIHRoZSBzdHVkZW50cyB0byIsInRoZSB0cmFuc3BvcnRhdGlvbiB0byBhbmQgZnJvbSIsImhvdyBsb25nIHdlXHUyMDE5bGwgYmUgc3RheWluZyBhdCIsInRoZSBmYWNpbGl0aWVzIHdlXHUyMDE5bGwgaGF2ZSBhY2Nlc3MgdG8gYXQiXSwia2V5IjoyfSwiIHRoZSBjYW1wc2l0ZSBhZnRlciB0aGUgZmVycnkgcmlkZSB0byBWaWN0b3JpYSBJc2xhbmQuIFNhcmFoIHN1Z2dlc3RlZCB3ZSBjaGFydGVyIGEgYnVzIHRvIHBpY2sgdXMgdXAgYXQgdGhlIGZlcnJ5IHN0YXRpb24gYnV0IEkgdGhvdWdodCB0aGlzIHllYXJcdTIwMTlzIGNhbXBzaXRlIHdhcyBvbmx5IGFjY2Vzc2libGUgYnkgYm9hdC5cblxuUGxlYXNlIGxldCB1cyBrbm93LFxuXG5BcmllcyJdfSx7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uLiIsIml0ZW1zIjpbeyJuIjo2LCJwcmUiOiJBcmllcyBpcyBlbWFpbGluZyBSYXkiLCJvcHRpb25zIjpbInRvIG1ha2UgYSBjb21wbGFpbnQuIiwidG8gYXNrIGZvciBhZHZpY2UuIiwidG8gcmVxdWVzdCBjaGFuZ2VzLiIsInRvIHJlbGlldmUgaGltIG9mIGR1dGllcy4iXSwia2V5IjoyfSx7Im4iOjcsInByZSI6Ikxhc3QgeWVhclx1MjAxOXMgY2FtcCIsIm9wdGlvbnMiOlsiZGlkIG5vdCB0YWtlIHN0dWRlbnRzIG9uIGEgY2FtcGluZyB0cmlwLiIsInByb3ZpZGVkIHN0dWRlbnRzIHdpdGggYWxsIG1lYWxzLiIsImZvY3VzZWQgZXhjbHVzaXZlbHkgb24gYWNhZGVtaWMgYWN0aXZpdGllcy4iLCJmZWF0dXJlZCBzb2NpYWwgYWN0aXZpdGllcyBpbiB0aGUgbW9ybmluZy4iXSwia2V5Ijo0fSx7Im4iOjgsInByZSI6IkFyaWVzIiwib3B0aW9ucyI6WyJuZWVkcyBSYXkgdG8gYXV0aG9yaXplIHRoZSBwcm9wb3NhbCBiZWZvcmUgcHJlc2VudGluZyBpdCB0byB0aGUgdGVhY2hlcnMuIiwiY3JlYXRlZCB0aGUgc2NoZWR1bGUgZm9yIHRoaXMgeWVhclx1MjAxOXMgY2FtcCBhbGwgYnkgaGVyc2VsZi4iLCJ3aWxsIGJlIGpvaW5pbmcgdGhlIHN0dWRlbnRzIG9uIHRoZSBjYW1waW5nIHRyaXAuIiwiaGFzblx1MjAxOXQgbWFkZSBhbnkgY2hhbmdlcyB0byB0aGUgcHJldmlvdXMgc2NoZWR1bGUuIl0sImtleSI6M31dfV19LHsiaWQiOjMsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMzogUmVhZGluZyBmb3IgSW5mb3JtYXRpb24iLCJ0aW1lIjoiOSBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIHBhc3NhZ2UuIiwiaHRtbCI6IjxwPjxiPkEuPC9iPiBBbnlvbmUgd2hvIGhhcyBldmVyIGxpdmVkIGluIGEgY2l0eSBvciBzdWJ1cmIgaGFzIGxpa2VseSBlbmNvdW50ZXJlZCBjcm93cy4gT3ZlciAzMSBzcGVjaWVzIGNhbiBiZSBmb3VuZCB3b3JsZHdpZGUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBTb3V0aCBBbWVyaWNhIGFuZCBBbnRhcmN0aWNhLiBIaXN0b3JpY2FsbHksIHRoZXNlIGNyZWF0dXJlcyB3ZXJlIHN5bm9ueW1vdXMgd2l0aCBkZWF0aCBhbmQgdGhlIGFmdGVybGlmZSBpbiBtYW55IGN1bHR1cmVzLiBOb3dhZGF5cywgbW9zdCBwZW9wbGUgcmVnYXJkIGNyb3dzIGFzIGEgbnVpc2FuY2Ugc2luY2UgdGhleSBhcmUgbG91ZCBhbmQgbWVzc3ksIGVzcGVjaWFsbHkgaW4gbGFyZ2UgZ3JvdXBzLiBSZWNlbnQgcmVzZWFyY2gsIGhvd2V2ZXIsIGhhcyByZXZlYWxlZCB0aGF0IHRoZXNlIGJpcmRzIGFyZSBhY3R1YWxseSBmYXIgbW9yZSByZW1hcmthYmxlIHRoYW4gcHJldmlvdXNseSB0aG91Z2h0LiBJbiBmYWN0LCBjcm93IGJlaGF2aW9yIGhhcyBzdHJpa2luZyBzaW1pbGFyaXRpZXMgdG8gdGhhdCBvZiBodW1hbnMuPC9wPjxwPjxiPkIuPC9iPiBMaWtlIHBlb3BsZSwgY3Jvd3MgYXJlIGhpZ2hseSBzb2NpYWwgY3JlYXR1cmVzLiBUaGVpciBsaXZlcyByZXZvbHZlIGFyb3VuZCB0aGUgZmFtaWx5LiBDcm93IGZhbWlsaWVzIGdlbmVyYWxseSBjb25zaXN0IG9mIHR3byBwYXJlbnRzIGFuZCBhbnl3aGVyZSBmcm9tIHR3byB0byBmaWZ0ZWVuIG9mZnNwcmluZywgdGhvdWdoIHRoZSBhdmVyYWdlIGZhbWlseSBzaXplIGlzIGZvdXIuIE1vc3Qgc3BlY2llcyBvZiBjcm93cyBkbyBub3QgYnJlZWQgdW50aWwgYXBwcm94aW1hdGVseSBmb3VyIHllYXJzIG9sZCwgYW5kIG9ubHkgYWJvdXQgaGFsZiBvZiB0aGVpciBvZmZzcHJpbmcgc3Vydml2ZSB0aGUgZmlyc3QgeWVhciBvZiBsaWZlLiBEdXJpbmcgdGhlIHBoYXNlIHByaW9yIHRvIHJlcHJvZHVjdGlvbiwgeW91bmcgY3Jvd3MgaGVscCB0aGVpciBwYXJlbnRzIHJlYXIgdGhlaXIgc2libGluZ3MuIEdyb3VwcyBvZiBjcm93cywgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgYSBcdTIwMWNtdXJkZXIsXHUyMDFkIGFsc28gY29vcGVyYXRlIHRvIGd1YXJkIHRoZWlyIHRlcnJpdG9yeSBmcm9tIHByZWRhdG9ycy48L3A+PHA+PGI+Qy48L2I+IEFsdGhvdWdoIGNsYXNzaWZpZWQgYXMgc29uZ2JpcmRzLCBjcm93cyBsYWNrIG1lbG9kaWMgdm9pY2VzLiBUaGVpciBjYWxsIGlzIG9mdGVuIHBlcmNlaXZlZCBhcyBhIGNvYXJzZSBcdTIwMWNjYXdcdTIwMWQgdG8gdGhlIGh1bWFuIGVhci4gTm9uZXRoZWxlc3MsIHRoZXNlIGNyZWF0dXJlcyBoYXZlIGFuIGludHJpY2F0ZSBjb21tdW5pY2F0aW9uIHN5c3RlbSBjb25zaXN0aW5nIG9mIG92ZXIgMjUwIGRpc3RpbmN0IGNyaWVzIHRoYXQgY29udmV5IGEgdmFyaWV0eSBvZiBtZXNzYWdlcyBzdWNoIGFzIGFsYXJtLCBmZWVkaW5nLCBhc3NlbWJseSwgYW5kIGZpZ2h0aW5nLiBUaGVpciBsYW5ndWFnZSBjb21wcmlzZXMgdHdvIGRpYWxlY3RzLCBvbmUgZm9yIGludGVyYWN0aW5nIHdpdGggbmVpZ2hib3VyaW5nIGNyb3dzIGFuZCBhbm90aGVyIHF1aWV0ZXIgZGlhbGVjdCByZXNlcnZlZCBmb3IgcmVsYXRpdmVzLiBDcm93cyBhcmUgYWxzbyBhYmxlIHRvIGltaXRhdGUgdGhlIHNvdW5kcyBvZiBvdGhlciBzcGVjaWVzLCBpbmNsdWRpbmcgc29tZSBlbGVtZW50cyBvZiBodW1hbiBzcGVlY2guIEJlY2F1c2UgY3Jvd3MgaW4gZGlmZmVyZW50IGdlb2dyYXBoaWNhbCBhcmVhcyBtYXkgbm90IHVzZSBvciBjb21wcmVoZW5kIHRoZSBzYW1lIGNhbGxzLCBpdCBtYWtlcyBkZWNpcGhlcmluZyB0aGUgbGFuZ3VhZ2UgZGlmZmljdWx0IGZvciByZXNlYXJjaGVycy48L3A+PHA+PGI+RC48L2I+IFNjaWVudGlzdHMgaGF2ZSBvbmx5IHJlY2VudGx5IGJlZ3VuIHN0dWR5aW5nIGNyb3dzIGFuZCBoYXZlIGJlZW4gYXN0b25pc2hlZCBieSB0aGUgZXh0ZW50IG9mIHRoZWlyIGludGVsbGlnZW5jZS4gT25lIHN0dWR5IGhhcyByZXZlYWxlZCB0aGF0IGNyb3dzIGNhbiBib3RoIHVzZSBhbmQgbWFrZSB0b29scy4gVGhpcyBpcyBhIHNpZ25pZmljYW50IGRpc2NvdmVyeSBhcyBvbmx5IHR3byBvdGhlciBzcGVjaWVzIG9mIGFuaW1hbHMgY2FuIGRvIHNvIFx1MjAxNCBlbGVwaGFudHMgYW5kIGNoaW1wYW56ZWVzLiBJbiBhbm90aGVyIHN0dWR5LCBjcm93cyBkaXNjb3ZlcmVkIGFuZCB0YXVnaHQgb3RoZXJzIGhvdyB0byBnZXQgbnV0cyBmcm9tIGEgdmVuZGluZyBtYWNoaW5lIGJ5IGluc2VydGluZyBjb2lucyB0aGF0IHdlcmUgc2NhdHRlcmVkIG9uIHRoZSBncm91bmQuIENyb3dzIGFyZSBhbHNvIHZlcnkgYWRhcHRhYmxlIGNyZWF0dXJlcyB0aGF0IHRocml2ZSBpbiBjaXRpZXMuIEluIFRva3lvLCB3aGVyZSBtYW55IHBlb3BsZSBoYW5nIHRoZWlyIGxhdW5kcnkgb3V0c2lkZSB0byBkcnksIGNyb3dzIGdhdGhlciBtZXRhbCBoYW5nZXJzIHRvIGJ1aWxkIG5lc3RzIHNpbmNlIHRoZXkgYXJlIG1vcmUgcmVhZGlseSBhdmFpbGFibGUgdGhhbiB0aGUgcHJvcGVyIHNpemUgdHdpZ3MuIFNjaWVudGlzdHMgbm93IHJlYWxpemUgdGhhdCBjcm93cyBoYXZlIHRoZSBpbnRlbGxlY3R1YWwgY2FwYWNpdHkgdG8gcGxhbiwgc29sdmUgcHJvYmxlbXMsIGFuZCB0ZWFjaCBuZXcgYmVoYXZpb3VycyB0byBvdGhlcnMuPC9wPjxwPjxiPkUuPC9iPiBOb3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBhYm92ZSBwYXJhZ3JhcGhzLjwvcD4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoibWF0Y2giLCJpbnN0ciI6IkRlY2lkZSB3aGljaCBwYXJhZ3JhcGgsIEEgdG8gRCwgaGFzIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiBlYWNoIHN0YXRlbWVudCBiZWxvdy4gU2VsZWN0IEUgaWYgdGhlIGluZm9ybWF0aW9uIGlzIG5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIHBhcmFncmFwaHMuIiwibGV0dGVycyI6WyJBIiwiQiIsIkMiLCJEIiwiRSJdLCJpdGVtcyI6W3sibiI6MSwidGV4dCI6IkNyb3dzIGhhdmUgZGVtb25zdHJhdGVkIGNvbnN0cnVjdGlvbiBza2lsbHMgdGhhdCBhcmUgcmFyZSBhbW9uZyBhbmltYWxzLiIsImtleSI6NH0seyJuIjoyLCJ0ZXh0IjoiVGhlIGxpZmUgZXhwZWN0YW5jeSBvZiBjcm93cyBpcyBhcHByb3hpbWF0ZWx5IDE1IHllYXJzLiIsImtleSI6NX0seyJuIjozLCJ0ZXh0IjoiQ3Jvd3MgY2FuIGNvcHkgdGhlIHRvbmVzIG1hZGUgYnkgb3RoZXIgYmVpbmdzLiIsImtleSI6M30seyJuIjo0LCJ0ZXh0IjoiQ3Jvd3MgbWFuYWdlIHBhcnRpY3VsYXJseSB3ZWxsIGluIHVyYmFuIGVudmlyb25tZW50cy4iLCJrZXkiOjR9LHsibiI6NSwidGV4dCI6IkNyb3dzIGhhdmUgZGVtb25zdHJhdGVkIHRoZSBhYmlsaXR5IHRvIGNyZWF0aXZlbHkgb3ZlcmNvbWUgY2hhbGxlbmdlcy4iLCJrZXkiOjR9LHsibiI6NiwidGV4dCI6IllvdW5nIGNyb3dzIGFzc2lzdCBpbiByYWlzaW5nIHRoZSBvZmZzcHJpbmcgb2YgbmVpZ2hib3Vycy4iLCJrZXkiOjV9LHsibiI6NywidGV4dCI6IkF0IGxlYXN0IG9uZSB2YXJpZXR5IG9mIGNyb3dzIGV4aXN0cyBpbiBtb3N0IGNvbnRpbmVudHMuIiwia2V5IjoxfSx7Im4iOjgsInRleHQiOiJEaWZmZXJlbnQgdm9pY2VzIGFyZSB1c2VkIGJ5IGNyb3dzIGZvciBkaWZmZXJlbnQgc29jaWFsIGNvbm5lY3Rpb25zLiIsImtleSI6M30seyJuIjo5LCJ0ZXh0IjoiQ3Jvd3Mgd29yayBjb2xsYWJvcmF0aXZlbHkgdG8gcHJvdGVjdCBlYWNoIG90aGVyIGZyb20gdGhyZWF0cy4iLCJrZXkiOjJ9XX1dfSx7ImlkIjo0LCJuYW1lIjoiUmVhZGluZyBQYXJ0IDQ6IFJlYWRpbmcgZm9yIFZpZXdwb2ludHMiLCJ0aW1lIjoiMTIgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZyb20gYSB3ZWJzaXRlLiIsImh0bWwiOiI8cD5CQ1x1MjAxOXMgQW5udWFsIFNjaG9vbCBSZXBvcnQgcmVsZWFzZWQgdG9kYXkgaGFzIG9mZmljaWFscywgdGVhY2hlcnMsIHBhcmVudHMsIGFuZCBzdHVkZW50cyBsaW5lZCB1cCBvbiBib3RoIHNpZGVzIG9mIHRoZSBkZWJhdGUgb3ZlciBwcm92aW5jZS13aWRlIHN0YW5kYXJkaXplZCB0ZXN0aW5nIG9mIGdyYWRlIDQgYW5kIDcgc3R1ZGVudHMuIE5vIG9uZSB3YXMgc3VycHJpc2VkIHRvIGhlYXIgc3R1ZGVudHMgc2xhbmRlciB0aGUgZml2ZS1ob3VyIGJhdHRlcnkgb2YgcmVhZGluZywgd3JpdGluZywgYW5kIG1hdGggZXhhbXMsIGJ1dCBtb3N0IGludGVydmlld2VkIHBhcmVudHMgc3VwcG9ydGVkIHRoZSB5ZWFybHkgYXNzZXNzbWVudCwgd2hvc2UgcmVzdWx0cyBhcmUgdXNlZCB0byBwdWJsaWNseSByYW5rIHNjaG9vbHMgYmFzZWQgb24gc3R1ZGVudHNcdTIwMTkgb3ZlcmFsbCBzY29yZXMuIFNvcGhpZSBCbG9vbSwgbW90aGVyIG9mIGEgV2hpdGVzYW5kcyBFbGVtZW50YXJ5IFNjaG9vbCBraW5kZXJnYXJ0ZW5lciwgYXBwbGF1ZHMgdGhlIHRlc3RcdTIwMTRhbmQgaGVlZHMgdGhlIHJhbmtpbmdzLiBcdTIwMWNBcyBhIHRheHBheWVyIGFuZCBwYXJlbnQsIEkgZXhwZWN0IGFjY2VzcyB0byB0aGlzIGtpbmQgb2YgaW5mb3JtYXRpb24uIEkgd2FudCBteSBjaGlsZCBhdCB0aGUgdG9wIHNjaG9vbC4gV2hpdGVzYW5kcyBkb2Vzblx1MjAxOXQgbWVhc3VyZSB1cC4gSVx1MjAxOW0gY29uc2lkZXJpbmcgT2NlYW52aWV3Llx1MjAxZDwvcD48cD5PY2VhbnZpZXcgU2Nob29sIHByaW5jaXBhbCBDaHJpc3RpbmUgU2hlbGxleSBhZG1pdHMgc2hlIGhhcyBtaXhlZCBmZWVsaW5ncyBhYm91dCBjb21wZWxsaW5nIHRlYWNoZXJzIHRvIGFkbWluaXN0ZXIgdGhlIHByb3ZpbmNpYWxseSBtYW5kYXRlZCB0ZXN0cyBidXQgYWdyZWVzIHBhcmVudHMgaGF2ZSBldmVyeSByaWdodCB0byBleHBlY3Qgc3RhdGlzdGljcyBvbiBzY2hvb2wgb3V0Y29tZXMsIHByb3ZpZGVkIHRoZXkgZG9uXHUyMDE5dCB1c2UgdGhlbSB0byB1bmZhaXJseSBjb21wYXJlIHB1YmxpYyBhbmQgcHJpdmF0ZSBzY2hvb2xzLiBcdTIwMWNTdGFuZGFyZGl6ZWQgdGVzdHMgaG9sZCB0ZWFjaGVycyBhbmQgc2Nob29scyBhcHByb3ByaWF0ZWx5IGFuc3dlcmFibGUgdG8gdGhlaXIgc3Rha2Vob2xkZXJzLiBXaXRob3V0IHN0YXRpc3RpY3Mgb24gbGVhcm5pbmcgb3V0Y29tZXMsIGhvdyBjb3VsZCB3ZSBlbnN1cmUgc2Nob29scyBhcmUgZG9pbmcgd2hhdCB0aGV5XHUyMDE5cmUgcHVibGljbHkgZnVuZGVkIGFuZCBtYW5kYXRlZCB0byBkbz9cdTIwMWQ8L3A+PHA+QWRhbSBCaXJjaCwgd2hvIHRlYWNoZXMgR3JhZGUgRm91ciBhdCBGb3Jlc3Rncm92ZSBFbGVtZW50YXJ5LCBpcyBza2VwdGljYWwgb2YgdGhlIGFzc2Vzc21lbnRzIGJ1dCBncnVkZ2luZ2x5IGNvbXBsaWVzLiBcdTIwMWNTdGFuZGFyZGl6ZWQgdGVzdGluZyByZWluZm9yY2VzIHRoZSBzb2NpYWwgbXl0aCB0aGF0IGlmIHdlXHUyMDE5cmUgbm90IGNvbXBldGluZywgd2VcdTIwMTlyZSB1bnByb2R1Y3RpdmUsXHUyMDFkIHNheXMgQmlyY2guIFx1MjAxY0l0IG92ZXJsb29rcyBtYW55IGZvcm1zIG9mIGludGVsbGlnZW5jZSBhbmQgbW9zdGx5IHJld2FyZHMgdGVzdC10YWtpbmcgYWJpbGl0eS4gTWFueSBnaWZ0ZWQgc3R1ZGVudHMgZmFpbCB0aGVzZSB0ZXN0cy4gQW5kIHRoZSB0ZXN0cyBhcmUgbGlrZSBhIHNuYXBzaG90OyB0aGV5IHRlbGwgdXMgbm90aGluZyBhYm91dCBhIHN0dWRlbnRcdTIwMTlzIGltcHJvdmVtZW50Llx1MjAxZDwvcD48cD5BdCBWYWxsZXlzaWRlIE1pZGRsZSBTY2hvb2wsIGdyYWRlIHNldmVuIHRlYWNoZXIgR2lsbGVzIExlZ2F1bHQgaXMgb24gdGhlIGJyaW5rIG9mIG11dGlueS4gXHUyMDFjRXZlcnkgY2xhc3Nyb29tIGhvdXIgSSBzcGVuZCBvbiBcdTIwMTh0ZXN0IHByZXBcdTIwMTkgaXMgb25lIGhvdXIgc3RvbGVuIGZyb20gYW4gYWN0dWFsbHkgYmVuZWZpY2lhbCBsZWFybmluZyBhY3Rpdml0eS5cdTIwMWQgTGVnYXVsdCwgd2hvc2Ugc2Nob29sIG91dHBlcmZvcm1lZCBib3RoIE9jZWFudmlldyBhbmQgRm9yZXN0Z3JvdmUsIGNvbmNlZGVzIHRoZSB0ZXN0cyBwcm92aWRlIHJlbGV2YW50IGNvbXBhcmF0aXZlIGRhdGEgYnV0IHRoaW5rcyBzdWNoIGNvbXBhcmlzb25zIG1lcmVseSBjb25maXJtIHdoYXQgd2UgYWxyZWFkeSBrbm93OiBzY2hvb2xzIGluIGFmZmx1ZW50IG5laWdoYm9yaG9vZHMgZG8gYmV0dGVyLiBcdTIwMWNGb3IgdGhpcyBjb21tb24ga25vd2xlZGdlLFx1MjAxZCBMZWdhdWx0IHNheXMsIFx1MjAxY3N0YW5kYXJkaXplZCB0ZXN0aW5nIHNxdWFuZGVycyAxNSBtaWxsaW9uIGRvbGxhcnMgb2YgcHJvdmluY2lhbCBmdW5kcyBhbm51YWxseS4gSW5zdGVhZCwgd2h5IG5vdCBoaXJlIG1vcmUgdGVhY2hlcnMsIHJlZHVjZSBjbGFzcyBzaXplcywgaW1wcm92ZSBzZXJ2aWNlcz9cdTIwMWQ8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJDaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIHRvIGNvbXBsZXRlIGVhY2ggc3RhdGVtZW50IGFib3V0IHRoZSBhcnRpY2xlLiIsIml0ZW1zIjpbeyJuIjoxLCJwcmUiOiJCaXJjaCBzYXlzIHRoYXQgc3RhbmRhcmRpemVkIHRlc3RpbmciLCJvcHRpb25zIjpbIm1ha2VzIHNjaG9vbHMgbGVzcyBwcm9kdWN0aXZlLiIsImRvZXNuXHUyMDE5dCBtZWFzdXJlIHN0dWRlbnQgcHJvZ3Jlc3MuIiwidW5kZXJtaW5lcyBoZWFsdGh5IGNvbXBldGl0aW9uLiIsIm92ZXJsb29rcyBnZW51aW5lIGludGVsbGlnZW5jZS4iXSwia2V5IjoyfSx7Im4iOjIsInByZSI6IkJsb29tIHdvdWxkIGJlIG1vc3Qgc2F0aXNmaWVkIHdpdGgiLCJvcHRpb25zIjpbIkZvcmVzdGdyb3ZlLiIsIk9jZWFudmlldy4iLCJWYWxsZXlzaWRlLiIsIldoaXRlc2FuZHMuIl0sImtleSI6M30seyJuIjozLCJwcmUiOiJMZWdhdWx0IGFuZCBTaGVsbGV5IGFncmVlIHN0YW5kYXJkaXplZCB0ZXN0aW5nIG9mZmVycyBhbiBvcHBvcnR1bml0eSB0byIsIm9wdGlvbnMiOlsiZ2F0aGVyIHN0YXRpc3RpY2FsIGRhdGEuIiwiaW1wcm92ZSBzdHVkeSBza2lsbHMuIiwibmVnb3RpYXRlIGNsYXNzIHNpemVzLiIsImNsYXJpZnkgc2Nob29sIG1hbmRhdGVzLiJdLCJrZXkiOjF9LHsibiI6NCwicHJlIjoiQm90aCB0ZWFjaGVycyB3b3VsZCBiZSBoYXBwaWVyIGlmIHRoZSBzY29wZSBvZiBzdGFuZGFyZGl6ZWQgdGVzdGluZyB3YXMiLCJvcHRpb25zIjpbIm11Y2ggYnJvYWRlci4iLCJtb3JlIGxpbWl0ZWQuIiwiYXBwbGllZCB0byBwdWJsaWMgc2Nob29scyBvbmx5LiIsInVzZWQgdG8gaW50ZW5zaWZ5IGNvbXBldGl0aW9uLiJdLCJrZXkiOjJ9LHsibiI6NSwicHJlIjoiT3ZlcmFsbCwgdGhlIGFydGljbGUgaW1wbGllcyB0aGF0IHN0YW5kYXJkaXplZCB0ZXN0aW5nIGlzIiwib3B0aW9ucyI6WyJvdXRkYXRlZC4iLCJqZW9wYXJkaXplZC4iLCJpbnZhbHVhYmxlLiIsImRpdmlzaXZlLiJdLCJrZXkiOjR9XX0seyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IlRoZSBmb2xsb3dpbmcgaXMgYSBjb21tZW50IGJ5IGEgdmlzaXRvciB0byB0aGUgd2Vic2l0ZSBwYWdlLiBDb21wbGV0ZSB0aGUgY29tbWVudCBieSBjaG9vc2luZyB0aGUgYmVzdCBvcHRpb24gdG8gZmlsbCBpbiBlYWNoIGJsYW5rLiIsImJvZHkiOlsiV2hpbGUgSSBoYXZlIGdlbnVpbmUgc3ltcGF0aHkgZm9yIHRoZSB0ZWFjaGVyc1x1MjAxOSBvcGluaW9ucywgSSBob3BlIG5vbmUgY2hvb3NlcyB0byAiLHsiYiI6Niwib3B0aW9ucyI6WyJkZWZ5IiwiYWNjZXB0IiwibW9jayIsImZvcmdldCJdLCJrZXkiOjF9LCIgdGhlaXIgYm9zc1x1MjAxOXMgb3JkZXJzIGFueXRpbWUgc29vbi4gU2Nob29sIHRlYWNoZXJzIG1heSBiZSByaWdodCBpbiBzYXlpbmcgdGhhdCBzdGFuZGFyZGl6ZWQgdGVzdGluZyBpcyAiLHsiYiI6Nywib3B0aW9ucyI6WyJvdXRkYXRlZCBhbmQgaW5lZmZpY2llbnQsIiwiZ2FpbmluZyBpbiBwb3B1bGFyaXR5LCIsIm9mIGxpbWl0ZWQgdmFsdWUsIiwidGFyZ2V0aW5nIHByaXZhdGUgc2Nob29scywiXSwia2V5IjozfSwiIGJ1dCBhcyBsb25nIGFzIHRoZXkgYXJlIGNvbGxlY3Rpbmcgc2FsYXJpZXMsIHRoZXkgbmVlZCB0byBmb2xsb3cgdGhlIHByb2NlZHVyZXMgc2V0IG91dCBpbiB0aGVpciBqb2IgZGVzY3JpcHRpb25zLiBBZnRlciBhbGwsIGFzIHdhcyBpbXBsaWVkIGluIHRoZSBhcnRpY2xlLCBzY2hvb2wgdGVhY2hlcnMgYXJlIGNpdmlsIHNlcnZhbnRzIGFuc3dlcmFibGUgdG8gIix7ImIiOjgsIm9wdGlvbnMiOlsicHVibGljIiwicHJvdmluY2lhbCIsInBvd2VyZnVsIiwiY29tbXVuaXR5Il0sImtleSI6MX0sIiBzdGFrZWhvbGRlcnMuIFRoZSBpc3N1ZSBvZiB3aGV0aGVyIG9yIG5vdCB0aGVzZSBzdGFrZWhvbGRlcnNcdTIwMTkgYWdlbmRhcyBoYXZlIGNoaWxkcmVuXHUyMDE5cyBiZXN0IGludGVyZXN0cyBhdCBoZWFydCB3YXMgIix7ImIiOjksIm9wdGlvbnMiOlsiZ2xvc3NlZCBvdmVyIiwidG91Y2hlZCBvbiIsImJydXNoZWQgb2ZmIiwicG9pbnRlZCBvdXQiXSwia2V5IjoyfSwiIGluIExlZ2F1bHRcdTIwMTlzIGNvbW1lbnRzLiBCdXQgdGhhdFx1MjAxOXMgYSBzZXBhcmF0ZSBpc3N1ZS4gVGhlIHdheSB0byBzdG9wIHN0YW5kYXJkaXplZCB0ZXN0aW5nIGluIHNjaG9vbHMsIGlmIHRoYXRcdTIwMTlzIHdoYXQgaXMgd2FudGVkLCBpcyB0byByZW1vdmUgZnJvbSBwb3dlciB0aGUgIix7ImIiOjEwLCJvcHRpb25zIjpbInByb3ZpbmNpYWwgZ292ZXJubWVudHMiLCJib2FyZHMgb2YgZWR1Y2F0aW9uIiwicGFyZW50IGNvbW1pdHRlZXMiLCJzY2hvb2wgcHJpbmNpcGFscyJdLCJrZXkiOjF9LCIgdGhhdCBtYW5kYXRlIHRoZW0uIl19XX1dfTsKCmZ1bmN0aW9uIGNsYkVzdGltYXRlUihyYXcpewogIGlmIChyYXcgPj0gMzUpIHJldHVybiB7IGxldmVsOidDRUxQSVAgMTBcdTIwMTMxMicsIG5vdGU6J0FkdmFuY2VkIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMzApIHJldHVybiB7IGxldmVsOidDRUxQSVAgOScsICBub3RlOidFZmZlY3RpdmUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyNykgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA4JywgIG5vdGU6J0dvb2QgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyMikgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA3JywgIG5vdGU6J0FkZXF1YXRlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNicsICBub3RlOidEZXZlbG9waW5nIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTEpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNScsICBub3RlOidBY3F1aXJpbmcgcHJvZmljaWVuY3knIH07CiAgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA0IG9yIGJlbG93Jywgbm90ZTonS2VlcCBwcmFjdGljaW5nIScgfTsKfQoKKGZ1bmN0aW9uKCl7CiAgLyogLS0tLSBpbmplY3Qgc2NvcGVkIENTUyAoV29yZFByZXNzLXNhZmU6IDxzdHlsZT4gaW4gY29udGVudCBjYW4gYmUgc3RyaXBwZWQpIC0tLS0gKi8KICB2YXIgQ1NTID0gYAouY2xwci13cmFwey0tbmF2eTojMDUwRTIwOy0tYjkwMDojMEQyMzUyOy0tYjcwMDojMTI0NUE4Oy0tYjUwMDojMjU2M0VCOy0tYjQwMDojM0I4MkY2Oy0tYjIwMDojOTNDNUZEOy0tYjEwMDojREJFQUZFOy0tYjUwOiNFRkY2RkY7LS10ZWFsOiMwRDk0ODg7LS1jeWFuOiMwNkI2RDQ7LS1ncmVlbjojMTBCOTgxOy0tZ3JlZW41MDojRUNGREY1Oy0tcm9zZTojRjQzRjVFOy0tdGV4dDojMEYxNzJBOy0tbXV0ZWQ6IzQ3NTU2OTstLXN1YnRsZTojOTRBM0I4Oy0tYm9yZGVyOiNFMkU4RjA7LS1iYXItYmc6I0U4RUJFRjstLWJhci1ib3JkZXI6I0QzRDlFMDstLWJhci10ZXh0OiMxRjI5Mzc7LS1wYW5lbC1wLWJnOiNGNEY1Rjc7LS1wYW5lbC1wLWJvcmRlcjojRTNFNkVBOy0tcGFuZWwtcS1iZzojRTlGNEY3Oy0tcGFuZWwtcS1ib3JkZXI6I0Q2RThFRDstLWRkLW9wZW4tYmc6I0NCRUJGNDtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxzYW5zLXNlcmlmO2NvbG9yOnZhcigtLXRleHQpO21heC13aWR0aDoxMTgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjE2cHggMTZweCA1NnB4O2xpbmUtaGVpZ2h0OjEuNTtmb250LXNpemU6MTZweDt9Ci5jbHByLXdyYXAgKiwuY2xwci13cmFwICo6OmJlZm9yZSwuY2xwci13cmFwICo6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9Ci5jbHByLXdyYXAgYnV0dG9ue2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7fQouY2xwci13cmFwIGgxLC5jbHByLXdyYXAgaDIsLmNscHItd3JhcCBoMywuY2xwci13cmFwIHB7bWFyZ2luOjA7fQouY2xwci1oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjIycHg7YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTtjb2xvcjojZmZmO3BhZGRpbmc6MzRweCAzOHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEzcHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtib3gtc2hhZG93OjAgMjBweCA0MHB4IC0yMHB4IHJnYmEoNSwxNCwzMiwuNDUpO30KLmNscHItYXVyb3Jhe3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5jbHByLWF1cm9yYSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7ZmlsdGVyOmJsdXIoNDZweCk7b3BhY2l0eTouNTU7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMSl7d2lkdGg6NDIwcHg7aGVpZ2h0OjQyMHB4O2xlZnQ6LTEyMHB4O3RvcDotMjAwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMxMjQ1QTggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgyKXt3aWR0aDozODBweDtoZWlnaHQ6MzgwcHg7cmlnaHQ6LTgwcHg7dG9wOi0xNjBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzBEOTQ4OCAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDMpe3dpZHRoOjM0MHB4O2hlaWdodDozNDBweDtyaWdodDoyMiU7Ym90dG9tOi0yNDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItaGVyby1iYWRnZXN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWJhZGdlLWJyYW5ke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1iOTAwKTtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo0cHggMTFweDtib3JkZXItcmFkaXVzOjk5OXB4O2xldHRlci1zcGFjaW5nOi4wMWVtO30KLmNscHItYmFkZ2Utc2V0e2NvbG9yOnZhcigtLWIyMDApO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDt9Ci5jbHByLWhlcm8gaDF7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDQwcHgpO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07bGluZS1oZWlnaHQ6MS4xMjt9Ci5jbHByLWhlcm8tc3Vie3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiNDN0QyRTM7Zm9udC1zaXplOjE0LjVweDttYXgtd2lkdGg6NzYwcHg7fQouY2xwci1oZXJvLWNoaXBze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30KLmNscHItY2hpcHtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojRTVFRUZCO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO3BhZGRpbmc6NXB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLWN0YXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjZweDtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNXB4O3BhZGRpbmc6MTJweCAyMnB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMTJweCAyNHB4IC0xMHB4IHJnYmEoMzcsOTksMjM1LC44KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzLGJhY2tncm91bmQgLjE1czt9Ci5jbHByLWN0YTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtiYWNrZ3JvdW5kOnZhcigtLWI0MDApO30KLmNscHItdG9vbGJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtwYWRkaW5nOjEwcHggMTRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgNnB4IDE4cHggLTEycHggcmdiYSgxNSwyMyw0MiwuMjUpO3Bvc2l0aW9uOnN0aWNreTt0b3A6OHB4O3otaW5kZXg6MzA7fQouY2xwci10b29sYmFyW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItdG9vbGJhci1zcGFjZXJ7ZmxleDoxO30KLmNscHItc2NvcmUtY2hpcHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O30KLmNscHItdGJ0bntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2NvbG9yOnZhcigtLXRleHQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTNweDtwYWRkaW5nOjhweCAxNXB4O2JvcmRlci1yYWRpdXM6MTBweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJveC1zaGFkb3cgLjEyczt9Ci5jbHByLXRidG46aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNHB4IC04cHggcmdiYSgxNSwyMyw0MiwuMyk7fQouY2xwci10YnRuLWNoZWNre2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2JvcmRlci1jb2xvcjp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLXRidG4tY2hlY2s6aG92ZXJ7YmFja2dyb3VuZDojMGNhNjc4O30KLmNscHItdGJ0bltkaXNhYmxlZF17b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7Ym94LXNoYWRvdzpub25lO30KLmNscHItc2lte21hcmdpbi10b3A6MTZweDt9Ci5jbHByLXNpbVtoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLWRvdHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2luOjAgMCAxMnB4IDJweDtmbGV4LXdyYXA6d3JhcDt9Ci5jbHByLWRvdHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4O2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMTVzO30KLmNscHItZG90IGJ7ZGlzcGxheTppbmxpbmUtZmxleDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjEwMCk7Y29sb3I6dmFyKC0tYjkwMCk7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjExcHg7fQouY2xwci1kb3QuY2xwci1jdXJ7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjt9Ci5jbHByLWRvdC5jbHByLWN1ciBie2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjUpO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1kb25lIGJ7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLWNhdHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAxMHB4IDMwcHggLTE4cHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjExcHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1iYXItdGl0bGV7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWJhci10ZXh0KTtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1iYXItdGltZXJ7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tYmFyLXRleHQpO3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5jbHByLWJhci10aW1lciBie2ZvbnQtd2VpZ2h0OjgwMDt9Ci5jbHByLWNvbHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDowO30KLmNscHItcGFzc2FnZXtwYWRkaW5nOjIwcHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXAtYmcpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1xY29se3BhZGRpbmc6MThweCAyMnB4O2JhY2tncm91bmQ6dmFyKC0tcGFuZWwtcS1iZyk7bWF4LWhlaWdodDoxMjAwcHg7b3ZlcmZsb3c6YXV0bzt9Ci5jbHByLXBsYWJlbCwuY2xwci1pbnN0cntkaXNwbGF5OmZsZXg7Z2FwOjlweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTttYXJnaW4tYm90dG9tOjEycHg7fQouY2xwci1wbGFiZWw6OmJlZm9yZSwuY2xwci1pbnN0cjo6YmVmb3Jle2NvbnRlbnQ6ImkiO2ZsZXg6bm9uZTt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTppdGFsaWM7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MXB4O30KLmNscHItcGFzc2FnZSBwe2ZvbnQtc2l6ZToxNC41cHg7Y29sb3I6IzFlMmEzYTttYXJnaW4tYm90dG9tOjExcHg7bGluZS1oZWlnaHQ6MS43Mjt9Ci5jbHByLXBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTpibG9jazt9Ci5jbHByLWJsb2Nre2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXEtYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxNnB4IDE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O30KLmNscHItc3RlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7ZmxleC13cmFwOndyYXA7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7cGFkZGluZzo5cHggMDtsaW5lLWhlaWdodDoxLjc7fQouY2xwci1zdGVtICsgLmNscHItc3RlbXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLXNudW17Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO30KLmNscHItY2xvemV7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6Mi4xNTt9Ci5jbHByLWNsb3plIC5jbHByLXBhcmF7bWFyZ2luLWJvdHRvbToxMnB4O3doaXRlLXNwYWNlOnByZS13cmFwO30KLmNscHItbWF0Y2gtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMnB4O3BhZGRpbmc6MTFweCAwO2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS42O30KLmNscHItbWF0Y2gtcm93ICsgLmNscHItbWF0Y2gtcm93e2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRTZFREYxO30KLmNscHItbWF0Y2gtcm93IC5jbHByLXNudW17bWFyZ2luLXRvcDo1cHg7fQovKiBkcm9wZG93biB3aWRnZXQgKi8KLmNscHItZGR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjJweCAycHg7fQouY2xwci1kZC1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6NjRweDttYXgtd2lkdGg6MzQwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0I3QzJDRTtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjVweCA5cHg7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS10ZXh0KTtsaW5lLWhlaWdodDoxLjM1O3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEycyxib3JkZXItY29sb3IgLjEyczt9Ci5jbHByLWRkLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWRkLW9wZW4tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLXR4dHtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1kZC10eHQuY2xwci1lbXB0eXtjb2xvcjp2YXIoLS1zdWJ0bGUpO2xldHRlci1zcGFjaW5nOjNweDt9Ci5jbHByLWRkLWNhcmV0e2ZvbnQtc2l6ZTo5cHg7Y29sb3I6dmFyKC0tYjcwMCk7ZmxleDpub25lO30KLmNscHItZGQtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjYwO3RvcDpjYWxjKDEwMCUgKyA0cHgpO2xlZnQ6MDttaW4td2lkdGg6MjQwcHg7bWF4LXdpZHRoOjM2MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNDNkQwREE7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDE2cHggMzRweCAtMTJweCByZ2JhKDE1LDIzLDQyLC40KTtwYWRkaW5nOjVweDtkaXNwbGF5Om5vbmU7fQouY2xwci1kZC5jbHByLW9wZW4gLmNscHItZGQtbWVudXtkaXNwbGF5OmJsb2NrO30KLmNscHItZGQtb3B0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo5cHg7cGFkZGluZzo4cHggOXB4O2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS40O30KLmNscHItZGQtb3B0OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjUwKTt9Ci5jbHByLWRkLW9wdCAuY2xwci1yYWRpb3tmbGV4Om5vbmU7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MS41cHggc29saWQgIzlBQTdCNDttYXJnaW4tdG9wOjFweDt9Ci5jbHByLWRkLW9wdC5jbHByLXNlbCAuY2xwci1yYWRpb3tib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgNDIlLCNmZmYgNDclKTt9Ci5jbHByLWRkLmNscHItcmlnaHQgLmNscHItZGQtYnRue2JhY2tncm91bmQ6dmFyKC0tZ3JlZW41MCk7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ncmVlbik7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItZGQtYnRue2JhY2tncm91bmQ6I0ZGRjFGMjtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXJvc2UpO2NvbG9yOiNCRTEyM0M7fQouY2xwci1zb2x2ZWR7ZGlzcGxheTpub25lO21hcmdpbi1sZWZ0OjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDQ3ODU3O30KLmNscHItZGQuY2xwci13cm9uZyAuY2xwci1zb2x2ZWR7ZGlzcGxheTppbmxpbmU7fQouY2xwci1uYXZ7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTRweCAxOHB4O2JhY2tncm91bmQ6dmFyKC0tYmFyLWJnKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bntiYWNrZ3JvdW5kOnZhcigtLWI5MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7cGFkZGluZzo5cHggMjBweDtib3JkZXItcmFkaXVzOjlweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJhY2tncm91bmQgLjEyczt9Ci5jbHByLW5hdmJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI3MDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO30KLmNscHItbmF2YnRuLmNscHItZ2hvc3R7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItbmF2YnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZTt9Ci5jbHByLXJlc3VsdHN7bWFyZ2luLXRvcDoxOHB4O30KLmNscHItcmVzdWx0c1toaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXJlcy1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MjRweCAyNnB4O2JveC1zaGFkb3c6MCAxNnB4IDQwcHggLTIycHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1yZXMtdG9we2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1yZXMtc2NvcmV7Zm9udC1zaXplOjQ0cHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO2xpbmUtaGVpZ2h0OjE7fQouY2xwci1yZXMtc2NvcmUgc3Bhbntmb250LXNpemU6MjBweDtjb2xvcjp2YXIoLS1zdWJ0bGUpO30KLmNscHItcmVzLWNsYntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMHB4IDE2cHg7fQouY2xwci1yZXMtY2xiIGJ7ZGlzcGxheTpibG9jaztmb250LXNpemU6MThweDtjb2xvcjp2YXIoLS1iOTAwKTt9Ci5jbHByLXJlcy1jbGIgc21hbGx7Y29sb3I6dmFyKC0tbXV0ZWQpO30KLmNscHItcmVzLWJyZWFre2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1yZXMtcGlsbHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2JhY2tncm91bmQ6I0YxRjVGOTtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NnB4IDEzcHg7fQouY2xwci1yZXMtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4O2ZsZXgtd3JhcDp3cmFwO30KQG1lZGlhKG1heC13aWR0aDo4MjBweCl7LmNscHItY29sc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30uY2xwci1wYXNzYWdle2JvcmRlci1yaWdodDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0Om5vbmU7fS5jbHByLXFjb2x7bWF4LWhlaWdodDpub25lO319CmA7CiAgdmFyIHN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsgc3QudGV4dENvbnRlbnQgPSBDU1M7IGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3QpOwogIHZhciB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJXcmFwJyk7CiAgdmFyIHN0YXJ0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTdGFydCcpOwogIHZhciB0b29sYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJUb29sYmFyJyk7CiAgdmFyIHNpbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU2ltJyk7CiAgdmFyIGRvdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByRG90cycpOwogIHZhciBjYXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2F0Jyk7CiAgdmFyIHJlc3VsdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmVzdWx0cycpOwogIHZhciBzY29yZUNoaXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNjb3JlQ2hpcCcpOwogIHZhciBjaGVja0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2hlY2snKTsKICB2YXIgcmVzZXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc2V0Jyk7CgogIHZhciBRID0gW107CiAgdmFyIGN1clBhcnQgPSAwOwogIHZhciBjaGVja2VkID0gZmFsc2U7CgogIGZ1bmN0aW9uIGVsKHRhZywgY2xzLCBodG1sKXsgdmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpOyBpZihjbHMpZS5jbGFzc05hbWU9Y2xzOyBpZihodG1sIT1udWxsKWUuaW5uZXJIVE1MPWh0bWw7IHJldHVybiBlOyB9CgogIC8qIEJ1aWxkIHRoZSBwZXJzaXN0ZW50IHF1ZXN0aW9uIGxpc3QgT05DRTsgYXR0YWNoIC5fcSB0byBlYWNoIGl0ZW0vYmxhbmsgc28KICAgICByZS1yZW5kZXJpbmcgYSBwYXJ0IHJldXNlcyB0aGUgc2FtZSBzdGF0ZSBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LiAqLwogIGZ1bmN0aW9uIGluaXRRdWVzdGlvbnMoKXsKICAgIFEgPSBbXTsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCl7CiAgICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxrKXsKICAgICAgICBpZihibGsudHlwZT09PSdjbG96ZScpewogICAgICAgICAgYmxrLmJvZHkuZm9yRWFjaChmdW5jdGlvbih0b2speyBpZih0eXBlb2YgdG9rPT09J29iamVjdCcpeyB0b2suX3E9e3NlbDpudWxsLGtleTp0b2sua2V5LG46dG9rLmIscGFydDpwYXJ0LmlkfTsgUS5wdXNoKHRvay5fcSk7IH0gfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJsay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsgaXQuX3E9e3NlbDpudWxsLGtleTppdC5rZXksbjppdC5uLHBhcnQ6cGFydC5pZH07IFEucHVzaChpdC5fcSk7IH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIG1ha2VEcm9wZG93bihvcHRpb25zLCBxcmVmKXsKICAgIHZhciBkZCA9IGVsKCdzcGFuJywnY2xwci1kZCcpOwogICAgdmFyIGJ0biA9IGVsKCdidXR0b24nLCdjbHByLWRkLWJ0bicpOwogICAgdmFyIHR4dCA9IGVsKCdzcGFuJywnY2xwci1kZC10eHQgY2xwci1lbXB0eScsJyAgICcpOwogICAgdmFyIGNhcmV0ID0gZWwoJ3NwYW4nLCdjbHByLWRkLWNhcmV0JywnXHUyNWJlJyk7CiAgICBidG4uYXBwZW5kQ2hpbGQodHh0KTsgYnRuLmFwcGVuZENoaWxkKGNhcmV0KTsKICAgIHZhciBzb2x2ZWQgPSBlbCgnc3BhbicsJ2NscHItc29sdmVkJywnJyk7CiAgICB2YXIgbWVudSA9IGVsKCdzcGFuJywnY2xwci1kZC1tZW51Jyk7CiAgICBvcHRpb25zLmZvckVhY2goZnVuY3Rpb24ob3B0LCBpKXsKICAgICAgdmFyIG8gPSBlbCgnc3BhbicsJ2NscHItZGQtb3B0Jyk7CiAgICAgIG8uYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXJhZGlvJykpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLG9wdCkpOwogICAgICBvLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgICBxcmVmLnNlbCA9IGkrMTsKICAgICAgICB0eHQudGV4dENvbnRlbnQgPSBvcHQ7IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgICBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLXNlbCcpO30pOwogICAgICAgIG8uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgICAgICBjbG9zZUFsbCgpOwogICAgICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgICB9KTsKICAgICAgbWVudS5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgaWYoY2hlY2tlZCkgcmV0dXJuOwogICAgICB2YXIgd2FzT3BlbiA9IGRkLmNsYXNzTGlzdC5jb250YWlucygnY2xwci1vcGVuJyk7CiAgICAgIGNsb3NlQWxsKCk7CiAgICAgIGlmKCF3YXNPcGVuKSBkZC5jbGFzc0xpc3QuYWRkKCdjbHByLW9wZW4nKTsKICAgIH0pOwogICAgZGQuYXBwZW5kQ2hpbGQoYnRuKTsgZGQuYXBwZW5kQ2hpbGQoc29sdmVkKTsgZGQuYXBwZW5kQ2hpbGQobWVudSk7CiAgICBxcmVmLmRkRWwgPSBkZDsgcXJlZi50eHRFbCA9IHR4dDsgcXJlZi5zb2x2ZWRFbCA9IHNvbHZlZDsgcXJlZi5vcHRpb25zID0gb3B0aW9uczsKICAgIGlmKHFyZWYuc2VsIT1udWxsKXsKICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0aW9uc1txcmVmLnNlbC0xXTsgdHh0LmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOwogICAgICB2YXIgc28gPSBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpW3FyZWYuc2VsLTFdOyBpZihzbykgc28uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgIH0KICAgIHJldHVybiBkZDsKICB9CiAgZnVuY3Rpb24gY2xvc2VBbGwoKXsgd3JhcC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC5jbHByLW9wZW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1vcGVuJyk7fSk7IH0KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlQWxsKTsKCiAgZnVuY3Rpb24gYnVpbGRQYXJ0KHBpKXsKICAgIHZhciBwYXJ0ID0gUkRBVEEucGFydHNbcGldOwogICAgY2F0RWwuaW5uZXJIVE1MPScnOwogICAgdmFyIGJhciA9IGVsKCdkaXYnLCdjbHByLWJhcicpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aXRsZScsICdQcmFjdGljZSBUZXN0IDEgXHUyMDEzICcrcGFydC5uYW1lKSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItYmFyLXRpbWVyJywnU3VnZ2VzdGVkIHRpbWU6IDxiPicrcGFydC50aW1lKyc8L2I+JykpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQoYmFyKTsKICAgIHZhciBjb2xzID0gZWwoJ2RpdicsJ2NscHItY29scycpOwogICAgdmFyIGxlZnQgPSBlbCgnZGl2JywnY2xwci1wYXNzYWdlJyk7CiAgICBsZWZ0LmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLXBsYWJlbCcsIHBhcnQucGFzc2FnZS5sYWJlbCkpOwogICAgaWYocGFydC5wYXNzYWdlLnR5cGU9PT0naW1hZ2UnKXsKICAgICAgdmFyIGltZyA9IGVsKCdpbWcnLCdjbHByLXBpbWcnKTsgaW1nLnNyYyA9IHBhcnQucGFzc2FnZS5zcmM7IGltZy5hbHQgPSBwYXJ0LnBhc3NhZ2UuYWx0fHwnJzsgbGVmdC5hcHBlbmRDaGlsZChpbWcpOwogICAgfSBlbHNlIHsKICAgICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JyxudWxsLCBwYXJ0LnBhc3NhZ2UuaHRtbCkpOwogICAgfQogICAgdmFyIHJpZ2h0ID0gZWwoJ2RpdicsJ2NscHItcWNvbCcpOwogICAgcGFydC5ibG9ja3MuZm9yRWFjaChmdW5jdGlvbihibG9jayl7IHJpZ2h0LmFwcGVuZENoaWxkKGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpKTsgfSk7CiAgICBjb2xzLmFwcGVuZENoaWxkKGxlZnQpOyBjb2xzLmFwcGVuZENoaWxkKHJpZ2h0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGNvbHMpOwogICAgdmFyIG5hdiA9IGVsKCdkaXYnLCdjbHByLW5hdicpOwogICAgdmFyIHByZXYgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4gY2xwci1naG9zdCcsJ1x1MjE5MCBQcmV2aW91cyBwYXJ0Jyk7CiAgICB2YXIgbmV4dCA9IGVsKCdidXR0b24nLCdjbHByLW5hdmJ0bicsJ05leHQgcGFydCBcdTIxOTInKTsKICAgIHByZXYuZGlzYWJsZWQgPSAocGk9PT0wKTsgbmV4dC5kaXNhYmxlZCA9IChwaT09PVJEQVRBLnBhcnRzLmxlbmd0aC0xKTsKICAgIHByZXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBpZihwaT4wKSBnbyhwaS0xKTsgfSk7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk8UkRBVEEucGFydHMubGVuZ3RoLTEpIGdvKHBpKzEpOyB9KTsKICAgIG5hdi5hcHBlbmRDaGlsZChwcmV2KTsgbmF2LmFwcGVuZENoaWxkKG5leHQpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQobmF2KTsKICAgIGlmKGNoZWNrZWQpIGFwcGx5TWFya3MoKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpewogICAgdmFyIHdyYXBCID0gZWwoJ2RpdicsJ2NscHItYmxvY2snKTsKICAgIHdyYXBCLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWluc3RyJywgYmxvY2suaW5zdHIpKTsKICAgIGlmKGJsb2NrLnR5cGU9PT0nc3RlbWxpc3QnKXsKICAgICAgYmxvY2suaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7CiAgICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCdjbHByLXN0ZW0nKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXNudW0nLCBpdC5uKycuJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwgaXQucHJlKycgJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24oaXQub3B0aW9ucywgaXQuX3EpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J2Nsb3plJyl7CiAgICAgIHZhciBib3ggPSBlbCgnZGl2JywnY2xwci1jbG96ZScpOwogICAgICBibG9jay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsKICAgICAgICBpZih0eXBlb2YgdG9rPT09J3N0cmluZycpewogICAgICAgICAgdmFyIHNlZ3MgPSB0b2suc3BsaXQoJ1xuXG4nKTsKICAgICAgICAgIHNlZ3MuZm9yRWFjaChmdW5jdGlvbihzZWcsIGlkeCl7CiAgICAgICAgICAgIGlmKGlkeD4wKXsgYm94LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCc8YnI+PGJyPicpKTsgfQogICAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc2VnKSk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgYm94LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bih0b2sub3B0aW9ucywgdG9rLl9xKSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQoYm94KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J21hdGNoJyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1tYXRjaC1yb3cnKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGJsb2NrLmxldHRlcnMsIGl0Ll9xKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnRleHQpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0KICAgIHJldHVybiB3cmFwQjsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkRG90cygpewogICAgZG90c0VsLmlubmVySFRNTD0nJzsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocCwgaSl7CiAgICAgIHZhciBkID0gZWwoJ2J1dHRvbicsJ2NscHItZG90JysoaT09PWN1clBhcnQ\/JyBjbHByLWN1cic6JycpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnYicsbnVsbCwoaSsxKSkpOwogICAgICBkLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLFsnQ29ycmVzcG9uZGVuY2UnLCdBcHBseSBhIERpYWdyYW0nLCdJbmZvcm1hdGlvbicsJ1ZpZXdwb2ludHMnXVtpXSkpOwogICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oaSk7IH0pOwogICAgICBkb3RzRWwuYXBwZW5kQ2hpbGQoZCk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gZ28ocGkpeyBjdXJQYXJ0PXBpOyBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KHBpKTsgY2F0RWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsgfQoKICBmdW5jdGlvbiB1cGRhdGVTY29yZUNoaXAoKXsKICAgIHZhciBhbnMgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWwhPW51bGw7fSkubGVuZ3RoOwogICAgc2NvcmVDaGlwLnRleHRDb250ZW50ID0gY2hlY2tlZCA\/IChRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGgrJyAvICcrUS5sZW5ndGgrJyBjb3JyZWN0JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoYW5zKycgLyAnK1EubGVuZ3RoKycgYW5zd2VyZWQnKTsKICB9CgogIGZ1bmN0aW9uIGFwcGx5TWFya3MoKXsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgICAgaWYoIXEuZGRFbCkgcmV0dXJuOwogICAgICBxLmRkRWwuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1yaWdodCcsJ2NscHItd3JvbmcnKTsKICAgICAgaWYocS5zZWw9PT1xLmtleSl7IHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXJpZ2h0Jyk7IH0KICAgICAgZWxzZSB7CiAgICAgICAgcS5kZEVsLmNsYXNzTGlzdC5hZGQoJ2NscHItd3JvbmcnKTsKICAgICAgICBpZihxLnNvbHZlZEVsKSBxLnNvbHZlZEVsLnRleHRDb250ZW50ID0gJ1x1MjcxMyAnK3Eub3B0aW9uc1txLmtleS0xXTsKICAgICAgICBpZihxLnNlbD09bnVsbCAmJiBxLnR4dEVsKXsgcS50eHRFbC50ZXh0Q29udGVudD0nKG5vIGFuc3dlciknOyBxLnR4dEVsLmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOyB9CiAgICAgIH0KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gZG9DaGVjaygpewogICAgY2hlY2tlZCA9IHRydWU7CiAgICBhcHBseU1hcmtzKCk7CiAgICB2YXIgY29ycmVjdCA9IFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbD09PXEua2V5O30pLmxlbmd0aDsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgY2hlY2tCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgdmFyIGJ5UGFydCA9IHt9OwogICAgUS5mb3JFYWNoKGZ1bmN0aW9uKHEpeyBieVBhcnRbcS5wYXJ0XT1ieVBhcnRbcS5wYXJ0XXx8e2M6MCx0OjB9OyBieVBhcnRbcS5wYXJ0XS50Kys7IGlmKHEuc2VsPT09cS5rZXkpYnlQYXJ0W3EucGFydF0uYysrOyB9KTsKICAgIHZhciBlc3QgPSBjbGJFc3RpbWF0ZVIoY29ycmVjdCk7CiAgICB2YXIgcGlsbHMgPSBSREFUQS5wYXJ0cy5tYXAoZnVuY3Rpb24ocCl7IHZhciBiPWJ5UGFydFtwLmlkXXx8e2M6MCx0OjB9OyByZXR1cm4gJzxzcGFuIGNsYXNzPSJjbHByLXJlcy1waWxsIj5QYXJ0ICcrcC5pZCsnOiAnK2IuYysnLycrYi50Kyc8L3NwYW4+JzsgfSkuam9pbignJyk7CiAgICByZXN1bHRzRWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImNscHItcmVzLWNhcmQiPicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtdG9wIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXNjb3JlIj4nK2NvcnJlY3QrJzxzcGFuPi8nK1EubGVuZ3RoKyc8L3NwYW4+PC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jbGIiPjxiPicrZXN0LmxldmVsKyc8L2I+PHNtYWxsPicrZXN0Lm5vdGUrJyAmbWlkZG90OyBlc3RpbWF0ZWQgUmVhZGluZyBiYW5kPC9zbWFsbD48L2Rpdj4nCiAgICAgICsgJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYnJlYWsiPicrcGlsbHMrJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iY2xwci1uYXZidG4gY2xwci1naG9zdCIgaWQ9ImNscHJSZXZpZXciPlJldmlldyBhbnN3ZXJzIGluIGVhY2ggcGFydDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIiBpZD0iY2xwclJldHJ5Ij5UcnkgYWdhaW48L2J1dHRvbj48L2Rpdj4nCiAgICAgICsgJzxwIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Zm9udC1zaXplOjEyLjVweDtjb2xvcjp2YXIoLS1tdXRlZCkiPkVzdGltYXRlZCBiYW5kIGlzIGEgc3R1ZHkgZ3VpZGUgb25seSwgbm90IGFuIG9mZmljaWFsIENFTFBJUCBzY29yZS4gQ29ycmVjdCBhbnN3ZXJzIGFyZSBzaG93biB3aXRoIGEgZ3JlZW4gY2hlY2sgb24gZWFjaCBkcm9wLWRvd24geW91IGFuc3dlcmVkIGluY29ycmVjdGx5LjwvcD4nCiAgICAgICsgJzwvZGl2Pic7CiAgICByZXN1bHRzRWwuaGlkZGVuID0gZmFsc2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldHJ5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldmlldycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oMCk7IH0pOwogICAgcmVzdWx0c0VsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgfQoKICBmdW5jdGlvbiByZXNldEFsbCgpewogICAgY2hlY2tlZD1mYWxzZTsgaW5pdFF1ZXN0aW9ucygpOyBjdXJQYXJ0PTA7CiAgICBjaGVja0J0bi5kaXNhYmxlZD1mYWxzZTsKICAgIHJlc3VsdHNFbC5oaWRkZW49dHJ1ZTsgcmVzdWx0c0VsLmlubmVySFRNTD0nJzsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIHNpbS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgc3RhcnRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogICAgd3JhcC5xdWVyeVNlbGVjdG9yKCcuY2xwci1oZXJvJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICB0b29sYmFyLmhpZGRlbj1mYWxzZTsgc2ltLmhpZGRlbj1mYWxzZTsKICAgIGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOyBjaGVja2VkPWZhbHNlOwogICAgYnVpbGREb3RzKCk7IGJ1aWxkUGFydCgwKTsgdXBkYXRlU2NvcmVDaGlwKCk7CiAgfSk7CiAgY2hlY2tCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBkb0NoZWNrKTsKICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0QWxsKTsKfSkoKTs=\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 2 Practice Test 1: 4 parts, 38 questions in the real exam format with instant scoring and answer key. About 55 minutes. Free, no sign-up.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-6256","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=6256"}],"version-history":[{"count":3,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6256\/revisions"}],"predecessor-version":[{"id":6582,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6256\/revisions\/6582"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}