{"id":6425,"date":"2026-07-11T06:04:35","date_gmt":"2026-07-11T06:04:35","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-10-test-1-reading\/"},"modified":"2026-07-12T03:24:26","modified_gmt":"2026-07-12T03:24:26","slug":"celpip-set-10-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-10-test-1-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 10 \u00b7 Practice Test 1"},"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 10<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPlRvOiBTZW5pb3IgTWFuYWdlcnMsIFByYWlyaWUgV2VzdCBDcmVkaXQgVW5pb248YnI+RnJvbTogUmljaGFyZCBQb29sZSwgUHJlc2lkZW50IGFuZCBDRU88YnI+U3ViamVjdDogTUVNTyAmbmRhc2g7IENPTkZJREVOVElBTDogTW9uaXRvcmluZyBjb21wdXRlciB1c2U8L3A+PHA+RGVhciBTZW5pb3IgTWFuYWdlcnMsPC9wPjxwPkxpa2UgYWxsIGJhbmtzLCBQcmFpcmllIFdlc3QgdGhpbmtzIHRoYXQgZGF0YSBzZWN1cml0eSBpcyBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gQXMgYSByZXN1bHQsIGxhc3QgbW9udGggd2UgaW1wcm92ZWQgb3VyIGNvbXB1dGVyIG5ldHdvcmsgYnkgZGl2aWRpbmcgaXQgaW50byBzZXBhcmF0ZSwgc2VjdXJlIHN1Yi1uZXR3b3JrcyBmb3IgZWFjaCBkZXBhcnRtZW50LiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgaWYgdGhlcmUgaXMgYSBjeWJlcmF0dGFjaywgaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBlbnRpcmUgc3lzdGVtLiBXZSBoYXZlIGEgdmVyeSBleHBlcmllbmNlZCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChJVCkgdGVhbSB0aGF0IGtub3dzIHdoYXQgdG8gZG8gaWYgYSBjeWJlcmF0dGFjayBoYXBwZW5zLiBIb3dldmVyLCB3ZSB3aWxsIGJlIGRvaW5nIG1vcmUgaW4gdGhlIHVwY29taW5nIG1vbnRocy48L3A+PHA+U3R1ZGllcyBzaG93IHRoYXQgb3ZlciA2NCUgb2YgZW1wbG95ZWVzIHZpc2l0IG5vbi13b3JrLXJlbGF0ZWQgd2Vic2l0ZXMgYW5kIG92ZXIgODQlIHJlYWQgYW5kIHNlbmQgcGVyc29uYWwgZW1haWxzIHdoaWxlIHRoZXkgYXJlIGF0IHdvcmsuIFdoZW4gZW1wbG95ZWVzIHVzZSBvdXIgY29tcGFueSZyc3F1bztzIGNvbXB1dGVyIG5ldHdvcmsgZm9yIHBlcnNvbmFsIGFjdGl2aXRpZXMsIHRoZXkgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IG5vdCBvbmx5IHRoZWlyIHByb2R1Y3Rpdml0eSBidXQgYWxzbyB0aGVpciBwZXJzb25hbCBzZWN1cml0eS4gVmlzaXRpbmcgY2VydGFpbiB3ZWJzaXRlcyBvciBkb3dubG9hZGluZyBhdHRhY2htZW50cyBjYW4gbGVhZCB0byBpZGVudGl0eSB0aGVmdCBhbmQgcHV0IG91ciBuZXR3b3JrIGF0IHJpc2suIE91ciBzeXN0ZW0gY291bGQgYmUgaW5mZWN0ZWQgYnkgaGFybWZ1bCBwcm9ncmFtcyBzdWNoIGFzIHNweXdhcmUgYW5kIHZpcnVzZXMuIFRoZSBjcmVhdG9ycyBvZiB0aGVzZSBwcm9ncmFtcyB3b3VsZCB0aGVuIGhhdmUgYWNjZXNzIHRvIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyBjdXN0b21lcnMmcnNxdW87IGNyZWRpdCBjYXJkIGFuZCBiYW5rIGFjY291bnQgbnVtYmVycy4gQXMgeW91IGtub3csIG91ciBjdXN0b21lcnMgZGVwZW5kIG9uIHRoYXQgaW5mb3JtYXRpb24gbm90IGJlY29taW5nIHB1YmxpYy48L3A+PHA+TGlrZSBtYW55IG9yZ2FuaXphdGlvbnMsIHdlIGJsb2NrIGNlcnRhaW4gd2Vic2l0ZXMsIGFuZCB3ZSBoYXZlIHJ1bGVzIGFnYWluc3QgcGVyc29uYWwgZW1haWxpbmcuIEhvd2V2ZXIsIHN0YWZmIGRvIG5vdCBhbHdheXMgZm9sbG93IHRoZXNlIHBvbGljaWVzLCBhbmQgbmV3IHdlYnNpdGVzIGFwcGVhciBtb3JlIHF1aWNrbHkgdGhhbiB3ZSBjYW4gYmxvY2sgdGhlbS4gVGhlcmVmb3JlLCBzdGFydGluZyBuZXh0IG1vbnRoLCB3ZSB3aWxsIG1vbml0b3IgYWxsIGVtcGxveWVlcyZyc3F1bzsgaW50ZXJuZXQgdXNlLiBXZSBob3BlIHRoYXQgdGhpcyB3aWxsIGRpc2NvdXJhZ2UgZW1wbG95ZWVzIGZyb20gaW5hcHByb3ByaWF0ZSBvbmxpbmUgYmVoYXZpb3VyIHRoYXQgcHV0cyBvdXIgY29tcGFueSZyc3F1bztzIGRhdGEgYXQgcmlzay48L3A+PHA+V2Uga25vdyB0aGF0IG1vbml0b3JpbmcgZW1wbG95ZWVzIGNhbiBsZWFkIHRvIGxvdyBzdGFmZiBtb3JhbGUgYW5kIGZlZWxpbmdzIG9mIGRpc3RydXN0LCBlc3BlY2lhbGx5IGlmIHRoZSBjb21wYW55IGRvZXNuJnJzcXVvO3QgbGV0IHRoZSBzdGFmZiBrbm93IGFib3V0IGl0IGZpcnN0LiBUaGVyZWZvcmUsIHdlIGhhdmUgZGVjaWRlZCB0byBpbmZvcm0gZW1wbG95ZWVzIHRoYXQgd2Ugd2lsbCBiZSBkb2luZyB0aGlzLCBldmVuIHRob3VnaCBpdCB3b3VsZCBiZSBwb3NzaWJsZSBmb3IgdXMgdG8gbW9uaXRvciB0aGVtIHNlY3JldGx5LiBUaHVzLCBJIGFtIGFza2luZyBhbGwgc2VuaW9yIG1hbmFnZXJzIHRvIHByZXNlbnQgdGhlIG5ldyBwb2xpY3ksIGluIGRldGFpbCwgdG8gdGhlaXIgc3RhZmYgYXQgdGhlaXIgbmV4dCBkZXBhcnRtZW50IG1lZXRpbmcuPC9wPjxwPklmIGFueSBvZiB5b3Ugd291bGQgbGlrZSB0byBzcGVhayB3aXRoIG1lIGFib3V0IHRoaXMgcmVxdWVzdCwgcGxlYXNlIGNvbnRhY3QgbWUuIEFzIGFsd2F5cywgSSB3ZWxjb21lIHlvdXIgZmVlZGJhY2sgYW5kIHN1Z2dlc3Rpb25zLjwvcD48cD5SZWdhcmRzLDxicj5SaWNoYXJkPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIG1lc3NhZ2UuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IldoYXQgcmVjZW50bHkgaGFwcGVuZWQgYXQgdGhpcyBjb21wYW55PyIsIm9wdGlvbnMiOlsiSXQgc3VmZmVyZWQgYSBjeWJlcmF0dGFjay4iLCJJdCBleHBhbmRlZCBpdHMgSVQgZGVwYXJ0bWVudC4iLCJJdCBleHBlcmllbmNlZCBtYW55IHRocmVhdHMuIiwiSXQgY3JlYXRlZCBzZXZlcmFsIG5ldHdvcmtzLiJdLCJrZXkiOjR9LHsibiI6MiwicHJlIjoiV2h5IGlzIGJsb2NraW5nIHdlYnNpdGVzIGluZWZmZWN0aXZlPyIsIm9wdGlvbnMiOlsiVGhlIGNvbXBhbnkgaGFzIHRvbyBtYW55IG5ldHdvcmtzLiIsIlRoZSBjb21wdXRlciBzeXN0ZW1zIGFyZSB0b28gb2xkLiIsIlRoZSBpbnRlcm5ldCBpcyBncm93aW5nIHRvbyBxdWlja2x5LiIsIlRoZSBJVCB0ZWFtIGlzIHRvbyBidXN5LiJdLCJrZXkiOjN9LHsibiI6MywicHJlIjoiVGhlIG1lbW8gaXMgcXVpdGUiLCJvcHRpb25zIjpbImZvcm1hbC4iLCJjYXN1YWwuIiwiZW50ZXJ0YWluaW5nLiIsInVuZnJpZW5kbHkuIl0sImtleSI6MX0seyJuIjo0LCJwcmUiOiJUaGUgd3JpdGVyIGlzIGNvbmNlcm5lZCB0aGF0IGhpcyBkZWNpc2lvbiBjb3VsZCBsZWFkIHRvIiwib3B0aW9ucyI6WyJkaXNvcmdhbml6ZWQgZGVwYXJ0bWVudHMuIiwiZGlzc2F0aXNmaWVkIGVtcGxveWVlcy4iLCJ1bnRydXN0d29ydGh5IG1hbmFnZXJzLiIsIndvcnJpZWQgY3VzdG9tZXJzLiJdLCJrZXkiOjJ9LHsibiI6NSwicHJlIjoiVGhlIHdyaXRlciB0aGlua3MgcHJvZ3JhbXMgdG8gd2F0Y2ggZW1wbG95ZWVzIHNob3VsZCBiZSIsIm9wdGlvbnMiOlsiYXZvaWRlZC4iLCJleHBsYWluZWQuIiwib3B0aW9uYWwuIiwiZnJlZS4iXSwia2V5IjoyfSx7Im4iOjYsInByZSI6IldoYXQgZG9lcyB0aGUgd3JpdGVyIGFzayB0aGUgcmVhZGVycyB0byBkbz8iLCJvcHRpb25zIjpbInNwZWFrIHRvIHRoZWlyIHN0YWZmIiwidGFsayB0byB0aGVpciBtYW5hZ2VyIiwiZm9yd2FyZCB0aGlzIG1lbW8gdG8gc3RhZmYiLCJhdHRlbmQgYSBtZWV0aW5nIHdpdGggaGltIl0sImtleSI6MX1dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiSGVyZSBpcyBhIHJlc3BvbnNlIHRvIHRoZSBtZXNzYWdlLiBDb21wbGV0ZSB0aGUgcmVzcG9uc2UgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiSGVsbG8gUmljaGFyZCxcblxuSVx1MjAxOW0gd3JpdGluZyByZWdhcmRpbmcgeW91ciBtZW1vIGFib3V0Iix7ImIiOjcsIm9wdGlvbnMiOlsiaGlyaW5nIG5ldyBJVCBwcm9mZXNzaW9uYWxzIiwibW9uaXRvcmluZyBvdXIgc3RhZmZcdTIwMTlzIGludGVybmV0IHVzZSIsInVwZGF0aW5nIG91ciB2aXJ1cyBzb2Z0d2FyZSIsInByb3RlY3Rpbmcgb3VyIGN1c3RvbWVyc1x1MjAxOSBhY2NvdW50cyJdLCJrZXkiOjJ9LCIuIEl0XHUyMDE5cyBjbGVhciBmcm9tIHdoYXQgeW91XHUyMDE5dmUgc2FpZCB0aGF0IG91ciBJVCBkZXBhcnRtZW50Iix7ImIiOjgsIm9wdGlvbnMiOlsicmVxdWlyZXMgbmV0d29yayBzZWN1cml0eSB0cmFpbmluZyIsImhhcyBtYWRlIG1hbnkgbWlzdGFrZXMgaW4gdGhlIHBhc3QiLCJuZWVkcyB0byBoaXJlIG1vcmUgcXVhbGlmaWVkIHN0YWZmIiwiaXMgaW5mb3JtZWQgYWJvdXQgaG93IHRvIHJlc3BvbmQiXSwia2V5Ijo0fSwiLCBhbmQgc2VjdXJpdHkgaXMgb2J2aW91c2x5IGltcG9ydGFudCBmb3Igb3VyIGJ1c2luZXNzLiBJIGFncmVlIHdpdGggeW91IHRoYXQgc29tZSB0eXBlIG9mIG1vbml0b3JpbmciLHsiYiI6OSwib3B0aW9ucyI6WyJtaWdodCBiZSBhIHRlcnJpYmxlIG1pc3Rha2UiLCJ3b3VsZCByYWlzZSBzdGFmZiBtb3JhbGUiLCJpcyBsaWtlbHkgdG8gZ2FpbiBhY2NlcHRhbmNlIiwiaXMgZXNzZW50aWFsIGluIG91ciBidXNpbmVzcyJdLCJrZXkiOjR9LCIsIGJ1dCBJXHUyMDE5bSBub3Qgc3VyZSB0aGF0IHlvdVx1MjAxOXJlIHRha2luZyB0aGUgYmVzdCBhcHByb2FjaC4gQXMgeW91XHUyMDE5dmUgbWVudGlvbmVkLCBzdHVkaWVzIHNob3cgdGhhdCBtYW55IGVtcGxveWVlcyBhcmUgY3VycmVudGx5Iix7ImIiOjEwLCJvcHRpb25zIjpbImNyZWF0aW5nIHBlcnNvbmFsIHJpc2tzIGZvciB0aGVtc2VsdmVzIiwicmVkdWNpbmcgdGhlaXIgcGVyc29uYWwgaW50ZXJuZXQgdXNlIiwic2hhcmluZyBwcml2YXRlIGN1c3RvbWVyIGluZm9ybWF0aW9uIiwiaW1wcm92aW5nIHRoZWlyIHByb2R1Y3Rpdml0eSBvbmxpbmUiXSwia2V5IjoxfSwiLCBhbmQgSVx1MjAxOW0gbm90IHN1cmUgdGhhdCB5b3VyIHNvbHV0aW9uIHdpbGwgY2hhbmdlIHRoYXQuIFlvdXIgbWVzc2FnZSBzdWdnZXN0cyB0aGF0IG9ubHkiLHsiYiI6MTEsIm9wdGlvbnMiOlsiYmFua3MgYXJlIGF0IHJpc2sgb2YgaW5mb3JtYXRpb24gdGhlZnQiLCJwZXJzb25hbCBvbmxpbmUgYWN0aXZpdGllcyBhcmUgYSBwcm9ibGVtIiwicHJvZmVzc2lvbmFscyBhcmUgcmVzcG9uc2libGUgZm9yIHNlY3VyaXR5Iiwic3RhZmYgYXJlIHRyeWluZyB0byBoYXJtIHRoZSBuZXR3b3JrIl0sImtleSI6Mn0sIi4gSG93ZXZlciwgSSB0aGluayB0aGUgcHJvYmxlbSBoYXMgb3RoZXIgY2F1c2VzIGFuZCBvdGhlciBwb3NzaWJsZSBzb2x1dGlvbnMgd2hpY2ggSSBlbmNvdXJhZ2UgeW91IHRvIGNvbnNpZGVyLiBQZXJoYXBzIHlvdSBjb3VsZCBtZWV0IHdpdGggYWxsIHRoZSBzZW5pb3IgbWFuYWdlcnMgdG8gZGlzY3VzcyBvdGhlciBhbHRlcm5hdGl2ZXMuXG5cbkJlc3QsXG5NYXR0IEx1YmluXG5TZW5pb3IgTWFuYWdlciwgT3BlcmF0aW9ucyJdfV19LHsiaWQiOjIsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMjogUmVhZGluZyB0byBBcHBseSBhIERpYWdyYW0iLCJ0aW1lIjoiOCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGRpYWdyYW0uIiwiaHRtbCI6IjxzdHlsZT4uYWUtYmtje2JvcmRlcjoxcHggc29saWQgI2NiZDVlMTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE0cHg7YmFja2dyb3VuZDojZmZmfS5hZS1ia2MtaGVhZHtiYWNrZ3JvdW5kOiMxZjZmYjI7Y29sb3I6I2ZmZjtwYWRkaW5nOjE0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLWJrYy1oZWFkIGgze21hcmdpbjowO2NvbG9yOiNmZmY7Zm9udC1zaXplOjIxcHh9LmFlLWJrYy1oZWFkIGgzIC5mcmVle2NvbG9yOiM4ZmQxNGZ9LmFlLWJrYy1oZWFkIHB7bWFyZ2luOjRweCAwIDA7Zm9udC1zaXplOjE1cHh9LmFlLWJrYy1oZWFkIHAgLnZie2NvbG9yOiNiZmYwOGE7Zm9udC13ZWlnaHQ6Ym9sZH0uYWUtYmtjLWJvZHl7cGFkZGluZzoxMnB4IDE2cHh9LmFlLWJrYy1ib2R5IHB7bWFyZ2luOjAgMCAxMHB4O2xpbmUtaGVpZ2h0OjEuNX0uYWUtYmtjLWJpa2Vze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweDttYXJnaW46MTJweCAwfS5hZS1ia2MtYmlrZXtiYWNrZ3JvdW5kOiNlZWY0ZmE7Ym9yZGVyOjFweCBzb2xpZCAjY2ZlMGVmO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6MThweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzFkNWY5Nn0uYWUtYmtjLXN0ZXBzIGg0e21hcmdpbjoxMHB4IDAgNnB4O2NvbG9yOiM2YjNmYTB9LmFlLWJrYy1zdGVwcyBvbHttYXJnaW46MDtwYWRkaW5nLWxlZnQ6MjJweH0uYWUtYmtjLXN0ZXBzIGxpe21hcmdpbjowIDAgOHB4O2xpbmUtaGVpZ2h0OjEuNDV9LmFlLWJrYy1ub3Rle21hcmdpbjoxMnB4IDAgMDtmb250LXNpemU6MTNweDtjb2xvcjojNDQ0O2ZvbnQtc3R5bGU6aXRhbGljfUBtZWRpYShtYXgtd2lkdGg6NTYwcHgpey5hZS1ia2MtYmlrZXN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19PC9zdHlsZT48ZGl2IGNsYXNzPVwiYWUtYmtjXCI+PGRpdiBjbGFzcz1cImFlLWJrYy1oZWFkXCI+PGgzPkVudGVyIHRvIHdpbiBhIDxzcGFuIGNsYXNzPVwiZnJlZVwiPkZSRUU8L3NwYW4+IGJpY3ljbGUgcGFja2FnZSE8L2gzPjxwPkJyb3VnaHQgdG8geW91IGJ5IDxzcGFuIGNsYXNzPVwidmJcIj5WYWxsZXkgQmljeWNsZXM8L3NwYW4+PC9wPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1ia2MtYm9keVwiPjxwPlRlbGwgdXMgd2h5IHlvdSBsb3ZlIGJpa2luZyBmb3IgeW91ciBjaGFuY2UgdG8gd2luIGEgYmljeWNsZSBwYWNrYWdlIHdoaWNoIGluY2x1ZGVzIHlvdXIgY2hvaWNlIG9mIGVpdGhlciBhIENvbm5lciAzLjAgTW91bnRhaW4gQmlrZSBvciBhIENvbm5lciAyLjAgQ29tbXV0ZXIgUm9hZCBCaWtlLCBhbmQgYSB2YXJpZXR5IG9mIGJpa2luZyBhY2Nlc3NvcmllcyBpbmNsdWRpbmcgYSBsb25nLWRpc3RhbmNlIGJhY2twYWNrLCBmaWx0ZXJlZCB3YXRlciBib3R0bGUsIGFuZCBmaXRuZXNzIHdyaXN0YmFuZC48L3A+PGRpdiBjbGFzcz1cImFlLWJrYy1iaWtlc1wiPjxkaXYgY2xhc3M9XCJhZS1ia2MtYmlrZVwiPkNvbm5lciAzLjAgTW91bnRhaW4gQmlrZTwvZGl2PjxkaXYgY2xhc3M9XCJhZS1ia2MtYmlrZVwiPkNvbm5lciAyLjAgUm9hZCBCaWtlPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cImFlLWJrYy1zdGVwc1wiPjxoND5UbyBlbnRlciwgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwcyBiZWZvcmUgSnVuZSAzMC48L2g0PjxvbD48bGk+U2lnbiB1cCBmb3Igb3VyIG1haWxpbmcgbGlzdCB0byByZWNlaXZlIGV4Y2x1c2l2ZSBpbmZvcm1hdGlvbiBvbiBuZXcgcHJvZHVjdHMsIGluLXN0b3JlIHByb21vdGlvbnMsIGFuZCBvbmxpbmUgb2ZmZXJzLjwvbGk+PGxpPlNlbmQgdXMgYW4gZW1haWwgYXQgPHN0cm9uZz52YWxsZXliaWN5Y2xlc0Bjb250ZXN0ZW50cnkuY2E8L3N0cm9uZz4gZXhwbGFpbmluZyB3aHkgYmljeWNsaW5nIGlzIG9uZSBvZiB5b3VyIGZhdm91cml0ZSBwYXN0aW1lcyBhbmQgd2hhdCB5b3UgaW50ZW5kIHRvIGRvIGlmIHlvdSB3aW4uIFJlc3BvbnNlcyBzaG91bGQgYmUgYSBtYXhpbXVtIG9mIDUwMCB3b3Jkcy48L2xpPjxsaT5JbmNsdWRlIGEgcGhvdG9ncmFwaCBvZiB5b3UgcGFydGljaXBhdGluZyBpbiBhIGJpY3ljbGluZyBhY3Rpdml0eS4gVGhpcyBjb3VsZCBiZSBhbnl0aGluZyBmcm9tIGEgcGhvdG8gb2YgeW91IGFuZCB5b3VyIGZhbWlseSBiaWN5Y2xpbmcgaW4gdGhlIHBhcmsgb3IgZXZlbiBhIHBob3RvIG9mIHlvdSBtb3VudGFpbiBiaWtpbmcgaW4gdGhlIENhbmFkaWFuIFJvY2tpZXMhIFBsZWFzZSBlbnN1cmUgdGhhdCBhbGwgcGhvdG9zIGFyZSBhcHByb3ByaWF0ZSBmb3IgeW91bmdlciB2aWV3ZXJzLjwvbGk+PGxpPk1ha2Ugc3VyZSB0byBpbmNsdWRlIHlvdXIgbmFtZSwgYWRkcmVzcywgYW5kIGEgcGhvbmUgbnVtYmVyIHdlIGNhbiByZWFjaCB5b3UgYXQuPC9saT48L29sPjwvZGl2PjxwIGNsYXNzPVwiYWUtYmtjLW5vdGVcIj5UbyBlbnRlciwgeW91IG11c3QgYmUgYXQgbGVhc3QgMTggeWVhcnMgb2xkLiBDb250ZXN0IG9ubHkgb3BlbiB0byByZXNpZGVudHMgb2YgQ2FuYWRhOyBwcm9vZiBvZiByZXNpZGVuY3kgbWF5IGJlIHJlcXVlc3RlZC4gUGxlYXNlIG5vdGUgdGhhdCBieSBlbnRlcmluZyB0aGlzIGNvbnRlc3QsIHlvdSBnaXZlIHVzIHBlcm1pc3Npb24gdG8gcHVibGlzaCB5b3VyIG5hbWUsIHBob3RvZ3JhcGgsIGFuZCByZXNwb25zZXMgb24gb3VyIHdlYnNpdGUuPC9wPjwvZGl2PjwvZGl2PiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsIG1lc3NhZ2UgYWJvdXQgdGhlIGRpYWdyYW0gb24gdGhlIGxlZnQuIENvbXBsZXRlIHRoZSBlbWFpbCBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwiYm9keSI6WyJTdWJqZWN0OiBDb250ZXN0IEVudHJ5XG5UbzogVmFsbGV5IEJpY3ljbGVzIDx2YWxsZXliaWN5Y2xlc0Bjb250ZXN0ZW50cnkuY2E+XG5Gcm9tOiBNYXJrIFRpbW1vbnMgPG10aW1tb25zQGVtYWlsLmNvbT5cblxuRGVhciBWYWxsZXkgQmljeWNsZXMsXG5cblBsZWFzZSBlbnRlciBteSBuYW1lIix7ImIiOjEsIm9wdGlvbnMiOlsiZm9yIHlvdXIgYmlrZSBjb250ZXN0IiwiaW4gdGhlIGxvdHRlcnkgZHJhdyIsImluIHlvdXIgYmlrZSByYWNlIiwiYmVzaWRlIHRoZSBwaG90b2dyYXBoIl0sImtleSI6MX0sIi4gQXMgcmVxdWVzdGVkLCBJIGhhdmUgYXR0YWNoZWQgYSBwaG90byBvZiIseyJiIjoyLCJvcHRpb25zIjpbIm15IGZhbWlseSBhdCB0aGUgUm9ja2llcyIsIm15IGRhdWdodGVyXHUyMDE5cyBuZXcgYmlrZSIsIm1lIGNsaW1iaW5nIGEgbW91bnRhaW4iLCJtZSBiaWtpbmcgd2l0aCBhIGZyaWVuZCJdLCJrZXkiOjR9LCIuIEkgY3ljbGUgdG8gd29yayBkYWlseSBvbiBhbiBvbGQgQ29ubmVyIGJpa2UuIEkgYmlrZSBhbGwgeWVhciByb3VuZCwgZXhjZXB0IGluIGhlYXZ5IHNub3cuIElcdTIwMTltIG5vdCB0aGF0IGJyYXZlISBJZiBJIHdpbiwgSVx1MjAxOWQgY2hvb3NlIHRoZSBtb3VudGFpbiBiaWtlLiBXaXRoIGl0LCBJIHdvdWxkIHRha2UgYSB2YWNhdGlvbiBiaWtpbmcgdGhyb3VnaCB0aGUgbW91bnRhaW5zIGFuZCBhbG9uZyB0aGUgY29hc3RhbCByb2Fkcy4gSVx1MjAxOW0gaG9waW5nIHRoZSIseyJiIjozLCJvcHRpb25zIjpbIm5ldyBwcm9kdWN0cyIsImJpa2luZyBhY2Nlc3NvcmllcyIsIm1vdW50YWluIGJpa2UiLCJyb2FkIGJpa2UiXSwia2V5IjoyfSwid2lsbCBpbmNsdWRlIGEgYmljeWNsZSB0aXJlIHB1bXAsIHdoaWNoIHdvdWxkIGJlIHZlcnkgdXNlZnVsIG9uIHN1Y2ggYSB0cmlwLiBJIHJlYWxseSBob3BlIEkgd2luLiBJIG1hZGUgYSBiZXQgd2l0aCBteSB3aWZlIHRoYXQsIGlmIEkgZG8sIHNoZSBoYXMgdG8gY29tZSB3aXRoIG1lIG9uIHRoZSB0cmlwLiBTaGUgc2FpZCBzaGVcdTIwMTlzIG5vdCBwYWNraW5nIGhlciBiYWdzIGFueSB0aW1lIHNvb24hIENvdWxkIHlvdSB0ZWxsIG1lIGhvdyB0aGUgd2lubmVycyBhcmUgY2hvc2VuPyBJcyBpdCBhIHJhbmRvbSBkcmF3IG9yIHdpbGwgdGhlIGJlc3QiLHsiYiI6NCwib3B0aW9ucyI6WyJuZXcgcHJvZHVjdCBpZGVhIiwid3JpdHRlbiByZXNwb25zZSIsImJpY3ljbGUgcmV2aWV3IiwicGhvdG9ncmFwaCB0aXRsZSJdLCJrZXkiOjJ9LCJiZSBjaG9zZW4\/IEFsc28sIGlzIGl0IHJlYWxseSBuZWNlc3NhcnkgdG8iLHsiYiI6NSwib3B0aW9ucyI6WyJwcmludCBteSBuYW1lIiwicHVibGlzaCBteSBlbWFpbCIsInNoYXJlIG15IHBob25lIG51bWJlciIsImdpdmUgb3V0IG15IGFkZHJlc3MiXSwia2V5IjoxfSwib24geW91ciB3ZWJzaXRlIGlmIEkgd2luPyBJXHUyMDE5bSBxdWl0ZSBhIHByaXZhdGUgcGVyc29uLlxuXG5CZXN0LFxuTWFyayBUaW1tb25zIl19LHsidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwiaXRlbXMiOlt7Im4iOjYsInByZSI6IldoeSBkb2VzIE1hcmsgZGVzY3JpYmUgaGlzIGJpa2luZyBleHBlcmllbmNlcz8iLCJvcHRpb25zIjpbInRvIGV4cGxhaW4gd2h5IGhlIGRlc2VydmVzIGEgbmV3IGJpa2UiLCJ0byBlbnRlciBmb3IgYSBkaXNjb3VudCBvbiB0aGUgYmlrZSIsInRvIGZ1bGZpbGwgdGhlIGNvbnRlc3QgcmVxdWlyZW1lbnRzIiwidG8gZGVzY3JpYmUgdGhlIHBob3RvIGhlIHNlbnQgaW4iXSwia2V5IjozfSx7Im4iOjcsInByZSI6IldoeSBkb2VzIE1hcmsgd2FudCB0byB3aW4\/Iiwib3B0aW9ucyI6WyJ0byBnZXQgYSBiaWtlIGZvciBoaXMgdHJpcCIsInRvIHBheSBmb3IgaGlzIGJpa2UgdHJpcCIsInRvIHN0YXJ0IGJpa2luZyB0byB3b3JrIiwidG8gZ2V0IGhpcyB3aWZlIGEgYmlrZSJdLCJrZXkiOjF9LHsibiI6OCwicHJlIjoiSG93IHdvdWxkIE1hcmtcdTIwMTlzIHdpZmUgbGlrZWx5IGZlZWwgYWJvdXQgaGlzIGFwcGxpY2F0aW9uPyIsIm9wdGlvbnMiOlsiSGUgd2lsbCBkZWZpbml0ZWx5IHdpbi4iLCJIaXMgcGljdHVyZSBpcyB1bnN1aXRhYmxlLiIsIkhlXHUyMDE5cyB0aGUgYmVzdCBjb250ZXN0YW50LiIsIkhlXHUyMDE5cyB1bmxpa2VseSB0byB3aW4uIl0sImtleSI6NH1dfV19LHsiaWQiOjMsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMzogUmVhZGluZyBmb3IgSW5mb3JtYXRpb24iLCJ0aW1lIjoiOSBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIHBhc3NhZ2UuIiwiaHRtbCI6IjxwPjxzdHJvbmc+QS48L3N0cm9uZz4gSW4gMTk1MSwgYSByZXBvcnQgY29tbWlzc2lvbmVkIGJ5IENhbmFkYSZyc3F1bztzIGZlZGVyYWwgZ292ZXJubWVudCBpbmRpY2F0ZWQgdGhhdCBwcm9mZXNzaW9uYWwgdGhlYXRyZSB3YXMgbW9yaWJ1bmQsIG11c2ljIHdhcyBwcmVzZW50IG9ubHkgaW4gY2h1cmNoZXMgYW5kIHNjaG9vbHMsIGFuZCBFbmdsaXNoIENhbmFkYSBwcm9kdWNlZCBvbmx5IDE0IHdvcmtzIG9mIGZpY3Rpb24gcGVyIHllYXIuIEFydGlzdHMmbWRhc2g7d2hldGhlciB3cml0ZXJzLCBjb21wb3NlcnMsIG9yIGFjdG9ycyZtZGFzaDtjb3VsZG4mcnNxdW87dCBtYWtlIGVub3VnaCBtb25leSBmcm9tIHRoZWlyIGFydCB0byBzdXBwb3J0IHRoZW1zZWx2ZXMuIFRoaXMgZmFtb3VzIE1hc3NleSBSZXBvcnQgcmVjb21tZW5kZWQgdGhhdCB0aGUgZ292ZXJubWVudCBjcmVhdGUgdGhlIENhbmFkYSBDb3VuY2lsIGZvciB0aGUgRW5jb3VyYWdlbWVudCBvZiB0aGUgQXJ0cywgTGV0dGVycywgSHVtYW5pdGllcywgYW5kIFNvY2lhbCBTY2llbmNlcywgd2hpY2ggd2FzIGVzdGFibGlzaGVkIGluIDE5NTcuIFR3ZW50eS1vbmUgeWVhcnMgbGF0ZXIsIHRoZSBnb3Zlcm5tZW50IGRpdmlkZWQgdGhlIENvdW5jaWwsIG1ha2luZyB0aGUgU29jaWFsIFNjaWVuY2VzIGFuZCBIdW1hbml0aWVzIFJlc2VhcmNoIENvdW5jaWwgYSBzZXBhcmF0ZSBlbnRpdHkgdG8gdGFrZSBvdmVyIGZ1bmRpbmcgZm9yIHJlc2VhcmNoIGluIHRoZSBzb2NpYWwgc2NpZW5jZXMgYW5kIGh1bWFuaXRpZXMuPC9wPjxwPjxzdHJvbmc+Qi48L3N0cm9uZz4gVXNpbmcgdGhlIG5hbWUgQ2FuYWRhIENvdW5jaWwgZm9yIHRoZSBBcnRzLCBvciBDYW5hZGEgQ291bmNpbCwgdGhlIG9yZ2FuaXphdGlvbiBwcm92aWRlcyBmdW5kaW5nIGZvciB0aGUgYXJ0cyBpbiBDYW5hZGE6IGRhbmNlLCBtZWRpYSBhcnRzLCBtdXNpYywgdGhlYXRyZSwgdmlzdWFsIGFydHMsIHdyaXRpbmcgYW5kIHB1Ymxpc2hpbmcsIGFuZCBhYm9yaWdpbmFsIGFydHMuIEluIGFkZGl0aW9uLCB0aGUgQ2FuYWRhIENvdW5jaWwgbWF5IHByb3ZpZGUgZnVuZHMgdG8gcHVibGlzaGVycywgY29uY2VydCBwcmVzZW50ZXJzLCBhbmQgdGhlYXRyZXMuIFdyaXRlcnMgbWF5IGFwcGx5IGZvciBhIGdyYW50IHRvIHN1cHBvcnQgdGhlbXNlbHZlcyB3aGlsZSB0aGV5IGZpbmlzaCBhIG5vdmVsOyBkYW5jZXJzIGFuZCBjb21wb3NlcnMgc2ltaWxhcmx5IG1heSBiZSBhd2FyZGVkIHN1YnNpc3RlbmNlIGZ1bmRzIGZvciBhIHBlcmlvZCBvZiB0aW1lIGRldm90ZWQgdG8gdGhlIGNyZWF0aW9uIG9mIG5ldyB3b3JrLiBUaGUgQ2FuYWRhIENvdW5jaWwgYWxzbyBhd2FyZHMgc2V2ZXJhbCBhbm51YWwgcHJpemVzIHRvIGFydGlzdHMuIFBlcmhhcHMgdGhlIG1vc3Qgd2VsbC1rbm93biBhcmUgdGhlIEdvdmVybm9yIEdlbmVyYWwmcnNxdW87cyBMaXRlcmFyeSBBd2FyZHMuIERlY2lzaW9ucyBhYm91dCBncmFudHMgYW5kIHByaXplcyBhcmUgbWFkZSBieSBqdXJpZXMgY29tcHJpc2VkIG9mIGFydGlzdHMgYW5kIGFydHMgcHJvZmVzc2lvbmFscyBmcm9tIGFjcm9zcyB0aGUgY291bnRyeSwgYWJvdXQgNzUwIG9mIHdob20gc2VydmUgb24gdGhlIENhbmFkYSBDb3VuY2lsIGp1cmllcyBlYWNoIHllYXIuPC9wPjxwPjxzdHJvbmc+Qy48L3N0cm9uZz4gSW4gMTk4NiwgdGhlIENhbmFkYSBDb3VuY2lsIGVzdGFibGlzaGVkIHRoZSBQdWJsaWMgTGVuZGluZyBSaWdodCBDb21taXNzaW9uIChQTFJDKS4gUHVibGljIExlbmRpbmcgUmlnaHQgZW5zdXJlcyB0aGF0IGF1dGhvcnMgcmVjZWl2ZSBmaW5hbmNpYWwgY29tcGVuc2F0aW9uIHdoZW4gdGhlaXIgYm9va3MgYXJlIGJvcnJvd2VkIHRocm91Z2ggYSBwdWJsaWMgbGlicmFyeSBzeXN0ZW0uIFRoZSBwcm9ncmFtIGlzIGludGVuZGVkIHRvIG9mZnNldCB0aGUgaW5qdXN0aWNlIG9mIGxpYnJhcnkgcGF0cm9ucyBhY2Nlc3NpbmcgYm9va3MgZm9yIGZyZWUmbWRhc2g7dGhhdCBpcywgd2l0aG91dCBhIHBvcnRpb24gb2YgZXF1aXZhbGVudCBwdXJjaGFzZSBwcmljZSBnb2luZyB0byB0aGUgYXV0aG9yLiBDbG9zZSB0byAkMTAgYmlsbGlvbiBwZXIgeWVhciBpcyBub3cgcGFpZCB0byBhYm91dCAxNywwMDAgQ2FuYWRpYW4gd3JpdGVycy4gQWx0aG91Z2ggc2ltaWxhciBwcm9ncmFtcyBleGlzdCBpbiBvdmVyIDMwIG90aGVyIGNvdW50cmllcywgdGhlIENhbmFkaWFuIHByb2dyYW0gaXMgdW5pcXVlIGluIHRoYXQgaXRzIGZvY3VzIGlzIHNvbGVseSBvbiBDYW5hZGlhbiBhdXRob3JzLjwvcD48cD48c3Ryb25nPkQuPC9zdHJvbmc+IFRoZSBDYW5hZGEgQ291bmNpbCBhbHNvIHNlbGVjdGl2ZWx5IGNvbGxlY3RzIGNvbnRlbXBvcmFyeSBDYW5hZGlhbiBhcnQuIEN1cnJlbnRseSBpdCBoYXMgb3ZlciAxNywwMDAgd29ya3Mgb2YgYXJ0IGJ5IGFwcHJveGltYXRlbHkgMywwMDAgYXJ0aXN0cyBpbiBpdHMgQXJ0IEJhbmsuIE1vcmUgdGhhbiBvbmUtdGhpcmQgb2YgdGhlc2UgcGFpbnRpbmdzLCBwcmludHMsIHBob3RvZ3JhcGhzLCBhbmQgc2N1bHB0dXJlcyBhcmUgb24gZXhoaWJpdCBpbiBwcml2YXRlIGFuZCBwdWJsaWMgc3BhY2VzIHRocm91Z2hvdXQgQ2FuYWRhLiBUaGUgd29ya3MgY2FuIGFsc28gYmUgc2VlbiBvbiB0aGUgQ2FuYWRhIENvdW5jaWwgQXJ0IEJhbmsgd2Vic2l0ZSBhbmQgdGhlIEdvb2dsZSBBcnQgUHJvamVjdCB3ZWJzaXRlLjwvcD48cD48c3Ryb25nPkUuPC9zdHJvbmc+IE5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIGFib3ZlIHBhcmFncmFwaHMuPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJtYXRjaCIsImluc3RyIjoiRGVjaWRlIHdoaWNoIHBhcmFncmFwaCwgQSB0byBELCBoYXMgdGhlIGluZm9ybWF0aW9uIGdpdmVuIGluIGVhY2ggc3RhdGVtZW50IGJlbG93LiBTZWxlY3QgRSBpZiB0aGUgaW5mb3JtYXRpb24gaXMgbm90IGdpdmVuIGluIGFueSBvZiB0aGUgcGFyYWdyYXBocy4iLCJsZXR0ZXJzIjpbIkEiLCJCIiwiQyIsIkQiLCJFIl0sIml0ZW1zIjpbeyJuIjoxLCJ0ZXh0IjoiRGVjaXNpb25zIGZvciBDYW5hZGEgQ291bmNpbCByZWNpcGllbnRzIGFyZSBlc3NlbnRpYWxseSBkZW1vY3JhdGljLiIsImtleSI6Mn0seyJuIjoyLCJ0ZXh0IjoiR292ZXJubWVudCBzdXBwb3J0IGZvciB0aGUgYXJ0cyBpbiBDYW5hZGEgZXh0ZW5kcyBiYWNrIHNldmVyYWwgZGVjYWRlcy4iLCJrZXkiOjF9LHsibiI6MywidGV4dCI6IlBvcHVsYXIgYXV0aG9ycyBjYW4gZW5qb3kgYSBzbWFsbCBpbmNvbWUgd2l0aG91dCByZWx5aW5nIG9uIGJvb2tzdG9yZSBzYWxlcy4iLCJrZXkiOjN9LHsibiI6NCwidGV4dCI6IlRoZSBDYW5hZGEgQ291bmNpbCBwcm92aWRlcyBncmFudHMgZm9yIGF1dGhvcnMgdG8gbWFya2V0IHRoZWlyIGJvb2tzLiIsImtleSI6NX0seyJuIjo1LCJ0ZXh0IjoiVGhlIENhbmFkYSBDb3VuY2lsIHBhcnRuZXJzIHdpdGggc29tZSBvdGhlciBvcmdhbml6YXRpb25zIGluIGFydCBkaXNwbGF5cy4iLCJrZXkiOjR9LHsibiI6NiwidGV4dCI6IlRoZSBDYW5hZGEgQ291bmNpbCBhd2FyZHMgcHJvdmlkZSBiYXNpYyBmaW5hbmNpYWwgYXNzaXN0YW5jZSBkdXJpbmcgdGhlIGNyZWF0aXZlIHBlcmlvZC4iLCJrZXkiOjJ9LHsibiI6NywidGV4dCI6IkluIHRoZSBtaWQtdHdlbnRpZXRoIGNlbnR1cnksIHRoZWF0cmUgaW4gQ2FuYWRhIHdhcyB2aXJ0dWFsbHkgbm9uLWV4aXN0ZW50LiIsImtleSI6MX0seyJuIjo4LCJ0ZXh0IjoiTm9uLUNhbmFkaWFuIGF1dGhvcnMgd2l0aCBib29rcyBpbiBDYW5hZGlhbiBsaWJyYXJpZXMgZG8gbm90IHJlY2VpdmUgcGF5bWVudC4iLCJrZXkiOjN9LHsibiI6OSwidGV4dCI6IkFydGlzdHMgd2hvIHJlY2VpdmUgQ2FuYWRhIENvdW5jaWwgZ3JhbnRzIGV4aGliaXQgdGhlaXIgd29yayBpbiBjb3VuY2lsLXN1cHBvcnRlZCBzaG93cy4iLCJrZXkiOjV9XX1dfSx7ImlkIjo0LCJuYW1lIjoiUmVhZGluZyBQYXJ0IDQ6IFJlYWRpbmcgZm9yIFZpZXdwb2ludHMiLCJ0aW1lIjoiMTIgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZyb20gYSB3ZWJzaXRlLiIsImh0bWwiOiI8cD5BcyBNZXRybyBWYW5jb3V2ZXIgY29udGludWVzIHRvIHN0cnVnZ2xlIHRocm91Z2ggYSBwcm9sb25nZWQgZHJvdWdodCwgd2F0ZXIgcmVzZXJ2b2lycyBhcmUgc28gbG93IHRoYXQgb2ZmaWNpYWxzIGhhdmUgYmFubmVkIGFsbCBsYXduIHdhdGVyaW5nLiBGb3JtZXJseSBsdXNoIG5laWdoYm91cmhvb2RzIGFyZSBub3cgYnJvd24gd2FzdGVsYW5kcywgZXhjZXB0IHdoZXJlIHJlc2lkZW50cyBlaXRoZXIgaWxsZWdhbGx5IHdhdGVyIHRoZWlyIGxhd24gKGFzIHdlc3RzaWRlIGdhcmRlbmluZyBlbnRodXNpYXN0IERhcml1cyBTbWl0aCBhZG1pdHMgdG8gZG9pbmcpIG9yIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBpbmNyZWFzaW5nbHkgcG9wdWxhciBzeW50aGV0aWMgb25lcy48L3A+PHA+VmFuY291dmVyIGhvbWVvd25lciwgQW5uZXR0ZSBCYXNpLCByZWNlbnRseSBpbnN0YWxsZWQgYXJ0aWZpY2lhbCBncmFzcyBvbiBoZXIgcHJvcGVydHkgYW5kLCBleGNlcHQgZm9yIHRoZSBzdGVlcCBwcmljZSB0YWcsIGNvdWxkbiZyc3F1bzt0IGJlIGhhcHBpZXIuICZsZHF1bztJdCZyc3F1bztzIG55bG9uLCBpdCZyc3F1bztzIGZha2UsIGJ1dCBpdCByb2NrcyEgSXQgbG9va3MgbGlrZSB0aGUgcmVhbCBkZWFsLCBpdCZyc3F1bztzIGFsd2F5cyBncmVlbiwgYW5kIGl0JnJzcXVvO3Mgc3VwZXIgbG93IG1haW50ZW5hbmNlLiBJdCZyc3F1bztzIHRvdGFsbHkgZWNvLWZyaWVuZGx5LiBObyBzcHJpbmtsaW5nLCBubyBwZXN0aWNpZGVzLiBKdXN0IGEgYml0IG9mIHZhY3V1bWluZy4mcmRxdW87PC9wPjxwPkFjcm9zcyB0aGUgYm9yZGVyLCBob21lb3duZXJzIGluIGRyb3VnaHQtcmF2YWdlZCBDYWxpZm9ybmlhIGhhdmUgYmVndW4gaW5zdGFsbGluZyBhcnRpZmljaWFsIGxhd25zIGFzIG9mZmljaWFscyBhcmUgbm93IG9mZmVyaW5nIHRoZW0gY29zdCByZWJhdGVzIGFzIGEgZmluYW5jaWFsIGluY2VudGl2ZSBmb3IgdGhlaXIgaW5zdGFsbGF0aW9uLiBCdXQgaW4gVmFuY291dmVyLCBOaWNrIExvcmltZXIsIGEgY2l0eSBlbmdpbmVlciwgcmVjb21tZW5kcyB0aGF0IGEgYnlsYXcgYmUgcGFzc2VkIHJlcXVpcmluZyByZXNpZGVudHMgdG8gcHVyY2hhc2UgYSBwZXJtaXQgYmVmb3JlIGluc3RhbGxpbmcgYW4gYXJ0aWZpY2lhbCBsYXduIG9yIGZhY2UgYSBoZWZ0eSBmaW5lLiAmbGRxdW87VGhpcyBpcyBhbHJlYWR5IHRoZSBjYXNlIGluIFRvcm9udG8sIGFuZCByaWdodGx5IHNvLiBBcnRpZmljaWFsIGdyYXNzIGhhcyBtYW55IGFkdmFudGFnZXMsIGJ1dCB0aGUgZmlicmUgaXQmcnNxdW87cyBtYWRlIGZyb20gaXNuJnJzcXVvO3QgaGlnaGx5IHBlcm1lYWJsZS4gSXQgZG9lc24mcnNxdW87dCBkcmFpbiByYWlud2F0ZXIgZWZmaWNpZW50bHksIGVzcGVjaWFsbHkgaWYgaXQmcnNxdW87cyBwbGFzdGljIHJhdGhlciB0aGFuIG55bG9uLiBXaXRoIGhlYXZ5IHJhaW5zLCB0aGVzZSBsYXducyBjb3VsZCBjb250cmlidXRlIHRvIGZsb29kaW5nLCZyZHF1bzsgc3RhdGVzIExvcmltZXIuIFRoZSBvdGhlciBpc3N1ZSBpcyBmcm9udCBsYXduIGVuY3JvYWNobWVudHMuICZsZHF1bztPbiBmcm9udCB5YXJkcywgZmFrZSB0dXJmIG9mdGVuIGVuY3JvYWNoZXMgb24gY2l0eS1vd25lZCBwcm9wZXJ0eSwgaGFtcGVyaW5nIHN0cmVldCBjbGVhbmluZyBhbmQgc25vdyByZW1vdmFsLCZyZHF1bzsgc2F5cyBMb3JpbWVyLjwvcD48cD5PdHRhd2EgcmVzaWRlbnQgSm9hbm5lIFBlcnNreSB3b3VsZCBwcmVmZXIgYW4gb3V0cmlnaHQgYmFuIG9uIGFydGlmaWNpYWwgbGF3bnMuICZsZHF1bztUaGV5IGRpc3J1cHQgdGhlIGVjb3N5c3RlbSwmcmRxdW87IHNoZSBhcmd1ZXMuICZsZHF1bztHcm91bmQgdmVnZXRhdGlvbiBhYnNvcmJzIGNhcmJvbiBkaW94aWRlIGFuZCBlbWl0cyBveHlnZW4sIHdoaWNoIGlzIGVzc2VudGlhbCBmb3IgbGlmZS4gSXQgYWxzbyBoZWxwcyByZWd1bGF0ZSBhdG1vc3BoZXJpYyB0ZW1wZXJhdHVyZXMuIE5hdHVyYWwgZmlicmVzIGJyZWF0aGUsIHN5bnRoZXRpY3MgZG9uJnJzcXVvO3QuIEFsc28sIGdyYXNzIGlzIGZvb2QsIGFuZCBzb2lsIGlzIGhvbWUgdG8gZWFydGh3b3JtcywgaW5zZWN0cywgYW5kIG90aGVyIHRoaW5ncyBiaXJkcyBlYXQuIEFzIGZvciBodW1hbnMsIHdlIGRvbiZyc3F1bzt0IGtub3csIHlldCwgaWYgc3ludGhldGljIGxhd25zIGFyZSBzYWZlLiBBbG9uZyB3aXRoIHNwcmF5LW9uIGxhd24gZHllcywgYXJ0aWZpY2lhbCBncmFzcyBtYXkgcHJvdmUgY2FyY2lub2dlbmljLCZyZHF1bzsgY29udGludWVzIFBlcnNreS48L3A+PHA+VGhlIHdhdGVyLWNvbnNjaW91cyBhbHRlcm5hdGl2ZSwgc2F5cyBQZXJza3ksIGlzIG5laXRoZXIgYXJ0aWZpY2lhbCBub3IgcmVhbCBncmFzcy4gJmxkcXVvO1doYXQgeW91IG5lZWQgaXMgZGl2ZXJzZSBhbmQgaGFyZHkgbmF0dXJhbCBncm91bmQgY292ZXIsJnJkcXVvOyBzaGUgaW5zaXN0cy4gJmxkcXVvO0kmcnNxdW87dmUgcGxhbnRlZCBteSB3aG9sZSB5YXJkIHdpdGggbW9zc2VzLCBoZXJicywgYW5kIHBlcmVubmlhbCB3aWxkZmxvd2Vycy4gSSBuZXZlciB3YXRlciBpdCwgYW5kIGl0JnJzcXVvO3MgYWx3YXlzIHRocml2aW5nLiZyZHF1bzs8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBvbiB0aGUgd2Vic2l0ZS4iLCJpdGVtcyI6W3sibiI6MSwicHJlIjoiTmljayBMb3JpbWVyIHdvdWxkIG1vc3QgbGlrZWx5IGFkdmlzZSBBbm5ldHRlIEJhc2kgdG8iLCJvcHRpb25zIjpbImRyYWluIHRoZSBmbG9vZCB3YXRlciBmcm9tIGhlciBwcm9wZXJ0eS4iLCJoYXZlIG55bG9uIGdyYXNzIGluIGhlciBiYWNreWFyZCBvbmx5LiIsInBheSBoZXIgZmluZSBmb3Igbm90IGhhdmluZyBhIGxhd24gcGVybWl0LiIsInJlcGxhY2UgaGVyIG55bG9uIGdyYXNzIHdpdGggcGxhc3RpYyBncmFzcy4iXSwia2V5IjoyfSx7Im4iOjIsInByZSI6IkNhbGlmb3JuaWFcdTIwMTlzIHdhdGVyIGNvbnNlcnZhdGlvbiBpbmNlbnRpdmVzIHdvdWxkIG1vc3QgbGlrZWx5IGJlIHN1cHBvcnRlZCBieSIsIm9wdGlvbnMiOlsiQW5uZXR0ZSBCYXNpLiIsIkRhcml1cyBTbWl0aC4iLCJKb2FubmUgUGVyc2t5LiIsIk5pY2sgTG9yaW1lci4iXSwia2V5IjoxfSx7Im4iOjMsInByZSI6IkpvYW5uZSBQZXJza3lcdTIwMTlzIG1haW4gcG9pbnQgaXMgdGhhdCIsIm9wdGlvbnMiOlsic3ByYXktb24gbGF3bnMgbWF5IHByb3ZlIHRvIGJlIGNhcmNpbm9nZW5pYy4iLCJhcnRpZmljaWFsIGdyYXNzIGlzIGRldHJpbWVudGFsIHRvIHRoZSBlbnZpcm9ubWVudC4iLCJsaXZpbmcgZ3JvdW5kIGNvdmVyIHJlZ3VsYXRlcyBhdG1vc3BoZXJpYyBoZWF0LiIsInJlYWwgbGF3bnMgYXJlIGhhYml0YXQgYW5kIGZvb2QgZm9yIGxpdmluZyB0aGluZ3MuIl0sImtleSI6Mn0seyJuIjo0LCJwcmUiOiJDb21wYXJlZCB0byBBbm5ldHRlIEJhc2ksIEpvYW5uZSBQZXJza3kgaXMgbW9yZSIsIm9wdGlvbnMiOlsiY2FzdWFsLiIsImlyb25pYyIsInVwYmVhdC4iLCJmb3JtYWwuIl0sImtleSI6NH0seyJuIjo1LCJwcmUiOiJUaGUgYmVzdCB0aXRsZSBmb3IgdGhpcyBhcnRpY2xlIGlzOiIsIm9wdGlvbnMiOlsiQnJvd24gaXMgdGhlIE5ldyBHcmVlbjogRHJvdWdodCBhbmQgQWVzdGhldGljcy4iLCJEcnkgTGF3biBvciBOeWxvbjogTm90IGEgQ3V0IGFuZCBEcmllZCBDaG9pY2UuIiwiRWNvLUZyaWVuZGx5IEdyb3VuZCBDb3ZlcjogSnVzdCBTYXkgTm8gdG8gR3Jhc3MuIiwiVGhlIE5ldyBTeW50aGV0aWMgTGF3bnM6IFBsYXN0aWMgYW5kIEZhbnRhc3RpYy4iXSwia2V5IjoyfV19LHsidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCJib2R5IjpbIkl0XHUyMDE5cyBjbG91ZGxlc3MgZm9yIHRoZSBlaWdodGggY29uc2VjdXRpdmUgd2VlaywgYW5kIHRoZXJlXHUyMDE5cyBzdGlsbCBubyByYWluIGluIHRoZSBmb3JlY2FzdCwgc28gcmlnaHQgbm93IE1yLiBMb3JpbWVyXHUyMDE5cyByZW1hcmtzIGFwcGVhciB0byBiZSIseyJiIjo2LCJvcHRpb25zIjpbInJhdGhlciBpcm9uaWMiLCJvbiB0aGUgbW9uZXkiLCJ1bmRlcmVzdGltYXRlZCIsIndlbGwtZm91bmRlZCJdLCJrZXkiOjF9LCIuIEJ1dCwgYWN0dWFsbHksIEkgcmVhZCB0aGlzIGFydGljbGUgd2l0aCBjb25zaWRlcmFibGUgaW50ZXJlc3QuIix7ImIiOjcsIm9wdGlvbnMiOlsiTXVjaCBsaWtlIGluIHRoZSBzdGF0ZSBvZiBDYWxpZm9ybmlhIiwiRGVzcGl0ZSB0aGUgY2l0eSBvZiBPdHRhd2FcdTIwMTlzIGJhbiIsIk9uIGFjY291bnQgb2YgVG9yb250b1x1MjAxOXMgaW5jZW50aXZlcyIsIkJlY2F1c2Ugb2YgVmFuY291dmVyXHUyMDE5cyByZWJhdGVzIl0sImtleSI6MX0sIiwgbW9zdCBvZiBteSBuZWlnaGJvdXJzIGhhdmUgYXJ0aWZpY2lhbCBsYXducy4gQWVzdGhldGljYWxseSwgdGhleVx1MjAxOXJlIHBlcmZlY3QsIGJ1dCBJXHUyMDE5bSBzdGlsbCBub3QgY29udmluY2VkIHRoYXQgc3ludGhldGljIGlzIHRoZSB3YXkgdG8gZ28uIENvbnNpZGVyaW5nIHRoYXQgdGhlaXIgbmF0dXJhbCBjb3VudGVycGFydHMgbmV2ZXIgdHJ1bHkgcmVxdWlyZSBwZXN0aWNpZGVzIGVpdGhlciwgTXMuIEJhc2lcdTIwMTlzIGltcGxpY2F0aW9uIHRoYXQgZmFrZSBncm91bmQgY292ZXJpbmdzIix7ImIiOjgsIm9wdGlvbnMiOlsiYXJlIG1vcmUgZWNvbm9taWNhbCBpbiB0aGUgbG9uZyBydW4iLCJyZXBlbCBib3RoIHdlZWRzIGFuZCBpbnNlY3RzIiwiY29udHJpYnV0ZSB0byBzdXN0YWluaW5nIHRoZSBwbGFuZXQiLCJyZWR1Y2UgZXhwb3N1cmUgdG8gY2FyY2lub2dlbnMiXSwia2V5IjozfSwiaXMgZnJhbmtseSBib2d1cy4iLHsiYiI6OSwib3B0aW9ucyI6WyJJbiBzdGFyayBjb250cmFzdCB0byBNci4gU21pdGgiLCJCYXNlZCBvbiBNcy4gQmFzaVx1MjAxOXMgY29tbWVudHMiLCJOb3QgdW5saWtlIE1yLiBMb3JpbWVyIiwiQXMgcmVmZXJyZWQgdG8gYnkgTXMuIFBlcnNreSJdLCJrZXkiOjN9LCIsIEkgaGF2ZSBzZXJpb3VzIGNvbmNlcm5zIGFib3V0IHRoZSBpbmNlbnRpdmVzIGluIENhbGlmb3JuaWEuIEFzIE1zLiBQZXJza3kgaW1wbGllcywgd2hlbiBtYXNzaXZlIGV4cGFuc2VzIG9mIGxhbmQgYXJlIix7ImIiOjEwLCJvcHRpb25zIjpbInR1cm5lZCBpbnRvIGNpdGllcyIsImNob2tlZCB3aXRoIG1vc3MiLCJzcHJheWVkIHdpdGggZHllIiwidW5hYmxlIHRvIGJyZWF0aGUiXSwia2V5Ijo0fSwiLCB0aGUgd29ybGQgd2lsbCBzdXJlbHkgYmUgaG90dGVyLCBub3QgYmV0dGVyLiJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 10 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-6425","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6425","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=6425"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6425\/revisions"}],"predecessor-version":[{"id":6550,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6425\/revisions\/6550"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}