{"id":6455,"date":"2026-07-11T06:39:18","date_gmt":"2026-07-11T06:39:18","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-11-test-2-reading\/"},"modified":"2026-07-12T03:24:21","modified_gmt":"2026-07-12T03:24:21","slug":"celpip-set-11-test-2-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-11-test-2-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 11 \u00b7 Practice Test 2"},"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 11<\/span> <\/div>\n<h1>Reading Practice Test 2<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMiAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAyIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDIiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkhpIE1vbSBhbmQgRGFkLDwvcD48cD5JJnJzcXVvO20gaGFwcHkgdG8gcmVwb3J0IHRoYXQgSSBoYXZlIGFycml2ZWQgc2FmZWx5IGluIE1vemFtYmlxdWUuIEFmdGVyIGFuIGV4aGF1c3RpbmcgZmxpZ2h0LCBJIHdhcyBtZXQgYXQgdGhlIGFpcnBvcnQgYnkgdGhlIHZvbHVudGVlciBjb29yZGluYXRvciBmb3IgR2xvYmFsIEhhYml0YXQgT3JnYW5pemF0aW9uLCB3aG8gZHJvdmUgbWUgdG8gdGhlIHZpbGxhZ2Ugb2YgTmFoaW5vLCB3aGVyZSB0aGUgc2Nob29sLWJ1aWxkaW5nIHByb2plY3QgdGhhdCBJJnJzcXVvO20gd29ya2luZyBvbiBpcyB0YWtpbmcgcGxhY2UuPC9wPjxwPllvdSB3b3VsZG4mcnNxdW87dCBiZWxpZXZlIHRoZSB3ZWF0aGVyIGhlcmUuIExhc3Qgd2VlayB3YXMgc28gaG90IHRoYXQgYSBmZXcgb2YgdGhlIG90aGVyIHZvbHVudGVlcnMgYmVjYW1lIGlsbC4gT3VyIHN1cGVydmlzb3Igc2FpZCB0aGF0IHRoaXMgaGVhdCB3YXZlIHdhcyByZWFsbHkgZXh0cmVtZSBhbmQgdGhhdCBoZSB3YXMgbm90IHN1cnByaXNlZCB0byBzZWUgc29tZSBwZW9wbGUgd2VyZSBhZmZlY3RlZCBieSBpdC4gQXBwYXJlbnRseSwgdGhlIHdlYXRoZXIgaXMgYmFjayB0byBub3JtYWwgbm93LCBidXQgaXQgc3RpbGwgZmVlbHMgcHJldHR5IGhvdCBhbmQgaHVtaWQgdG8gbWUuPC9wPjxwPkRlc3BpdGUgdGhlIGhvdCB3ZWF0aGVyLCB3ZSZyc3F1bzt2ZSBtYWRlIGltcHJlc3NpdmUgcHJvZ3Jlc3MuIFRoZSBmcmFtZSBvZiB0aGUgc2Nob29sIGlzIGNvbXBsZXRlZCwgYW5kIHdlJnJzcXVvO2xsIHN0YXJ0IG9uIHRoZSByb29mIG5leHQgd2Vlay4gVGhpcyBvcmdhbml6YXRpb24gaGFzIGV4dGVuc2l2ZSBleHBlcmllbmNlIGdldHRpbmcgdm9sdW50ZWVycyBhbmQgbG9jYWwgcGVvcGxlIHRvIHdvcmsgdG9nZXRoZXIgZWZmaWNpZW50bHksIGFuZCwgd2hpbGUgbW9zdCBvZiB1cyBhcmUgY29tcGxldGVseSB1bnRyYWluZWQgd2hlbiBpdCBjb21lcyB0byBidWlsZGluZywgd2UmcnNxdW87cmUgYWxsIHdpbGxpbmcgdG8gbGVhcm4gYW5kIHRvIHdvcmsgaGFyZC4gVGhlIGxvY2FsIGNvbnN0cnVjdGlvbiB3b3JrZXJzIGtub3cgYWxsIGFib3V0IHRoZSBiZXN0IHR5cGVzIG9mIHN0cnVjdHVyZXMgYW5kIG1hdGVyaWFscyB0byB1c2UgaW4gdGhpcyBjbGltYXRlLiBJJnJzcXVvO20gbGVhcm5pbmcgYSBsb3QgYWJvdXQgaG93IHRoZWlyIHZlbnRpbGF0aW9uIHN5c3RlbXMgd29yay48L3A+PHA+V2UmcnNxdW87cmUgY29uZmlkZW50IHRoYXQgdGhlIHNjaG9vbCB3aWxsIGJlIG9wZW4gYnkgU2VwdGVtYmVyLiBTaXh0eSBzdHVkZW50cyBmcm9tIHRoZSB2aWxsYWdlIGhhdmUgYWxyZWFkeSBlbnJvbGxlZCwgYW5kIHR3byBmdWxsLXRpbWUgdGVhY2hlcnMgaGF2ZSBiZWVuIGhpcmVkLiBJdCZyc3F1bztzIHNvIGV4Y2l0aW5nIHRvIHNlZSB0aGUga2lkcyB3aG8gd2lsbCBiZSBhdHRlbmRpbmcgdGhlIHNjaG9vbCBjb21lIGJ5IGFsbW9zdCBldmVyeSBkYXkgdG8gd2F0Y2ggb3VyIHByb2dyZXNzIGFuZCBoZWxwIGluIGFueSB3YXkgdGhleSBjYW4uIEl0JnJzcXVvO3MgZmFudGFzdGljIHRvIGJlIHdvcmtpbmcgb24gYSBwcm9qZWN0IHRoYXQgd2lsbCBoZWxwIHNvIG1hbnkgcGVvcGxlLCBhbmQgSSZyc3F1bzttIGFscmVhZHkgdGhpbmtpbmcgb2Ygdm9sdW50ZWVyaW5nIGZvciBhbm90aGVyIHByb2plY3QgbmV4dCBzdW1tZXIuPC9wPjxwPlllc3RlcmRheSwgd2UgdG9vayBhIGJyZWFrIGZyb20gdGhlIHByb2plY3QgYW5kIHdlbnQgaW50byB0aGUgY2l0eSBmb3Igc29tZSBlbnRlcnRhaW5tZW50LiBXZSBzYW1wbGVkIHRoZSBsb2NhbCBjdWlzaW5lIGF0IGEgcmVzdGF1cmFudCwgYW5kLCBhZnRlcndhcmRzLCB3ZSB3ZW50IGRhbmNpbmcsIHNvIEkgaGFkIGFuIG9wcG9ydHVuaXR5IHRvIG1lZXQgc29tZSBsb2NhbCBwZW9wbGUgYW5kIGdldCB0byBrbm93IHNvbWUgb2YgdGhlIG90aGVyIHZvbHVudGVlcnMgYmV0dGVyLiBCaWxsIGFuZCBLYXRpZSBoYXZlIGJlY29tZSB0d28gb2YgbXkgZnJpZW5kcyBoZXJlLCBhbmQgd2UmcnNxdW87cmUgcGxhbm5pbmcgYSBzaG9ydCBleGN1cnNpb24gdG8gc2VlIG1vcmUgb2YgdGhpcyBmYWJ1bG91cyBjb3VudHJ5IGJlZm9yZSByZXR1cm5pbmcgaG9tZS4gQWZ0ZXIgdGhpcyBleHBlcmllbmNlLCB3ZSZyc3F1bztyZSBhbGwgc29tZXdoYXQgcmVsdWN0YW50IHRvIHJldHVybiB0byBvdXIgZHVsbCBjbGFzc2VzIGluIHRoZSBmYWxsLjwvcD48cD5Ib3BlIHlvdSZyc3F1bztyZSBoYXZpbmcgYSBnb29kIHN1bW1lciw8L3A+PHA+TWlrZTwvcD4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoic3RlbWxpc3QiLCJpbnN0ciI6IlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGdpdmVuIGluIHRoZSBtZXNzYWdlLiIsIml0ZW1zIjpbeyJuIjoxLCJwcmUiOiJNaWtlIGlzIGluIE1vemFtYmlxdWUiLCJvcHRpb25zIjpbImZvciBhIHNjaG9vbCBleGNoYW5nZSBwcm9ncmFtLiIsInRvIGRvIHNvbWUgdm9sdW50ZWVyaW5nLiIsImFzIGEgcHJvamVjdCBjb29yZGluYXRvci4iLCJ0byBzdHVkeSBlbmdpbmVlcmluZy4iXSwia2V5IjoyfSx7Im4iOjIsInByZSI6IlRoZSB3ZWF0aGVyIiwib3B0aW9ucyI6WyJoYWx0ZWQgdGhlIHByb2dyZXNzIG9mIGFjdGl2aXRpZXMuIiwiaW1wcm92ZWQgYXMgdGhlIHByb2plY3Qgd2VudCBhbG9uZy4iLCJjYXVzZWQgaGlnaCB0aWRhbCB3YXZlcy4iLCJkaWRuXHUyMDE5dCBib3RoZXIgTWlrZSBhdCBhbGwuIl0sImtleSI6Mn0seyJuIjozLCJwcmUiOiJMb2NhbCB3b3JrZXJzIG9uIHRoZSBwcm9qZWN0Iiwib3B0aW9ucyI6WyJyZXNlbnQgZm9yZWlnbiBpbnRlcnZlbnRpb24uIiwicmVseSBvbiBmb3JlaWduIGJ1aWxkaW5nIGV4cGVydGlzZS4iLCJkbyBub3QgaW50ZXJhY3Qgd2l0aCB2b2x1bnRlZXJzIG11Y2guIiwiZGlyZWN0IG11Y2ggb2YgdGhlIGJ1aWxkaW5nIGFjdGl2aXRpZXMuIl0sImtleSI6NH0seyJuIjo0LCJwcmUiOiJNaWtlIGlzIGNvbnRlbXBsYXRpbmciLCJvcHRpb25zIjpbInBhcnRpY2lwYXRpbmcgaW4gc2ltaWxhciBwcm9qZWN0cyBpbiB0aGUgZnV0dXJlLiIsInRlYWNoaW5nIGF0IHRoZSBzY2hvb2wgaGVcdTIwMTlzIHdvcmtpbmcgb24uIiwid29ya2luZyB3aXRoIHRoZSBjaGlsZHJlbiBpbiB0aGUgdmlsbGFnZS4iLCJyZXR1cm5pbmcgaW4gdGhlIHN1bW1lciBmb3IgdGhlIG9wZW5pbmcuIl0sImtleSI6MX0seyJuIjo1LCJwcmUiOiJCaWxsIGFuZCBLYXRpZSIsIm9wdGlvbnMiOlsiaGF2ZSBiZWVuIE1pa2VcdTIwMTlzIGxvbmctdGltZSBmcmllbmRzLiIsImFyZSBNaWtlXHUyMDE5cyBjbGFzc21hdGVzLiIsIm1ldCBNaWtlIGR1cmluZyB0aGUgcHJvamVjdC4iLCJtZXQgYXQgYSBsb2NhbCByZXN0YXVyYW50LiJdLCJrZXkiOjN9LHsibiI6NiwicHJlIjoiTWlrZSBhbmQgb3RoZXIgdm9sdW50ZWVycyBhcmUgcmVsdWN0YW50Iiwib3B0aW9ucyI6WyJ0byByZXR1cm4gaG9tZS4iLCJ0byBzb2NpYWxpemUgd2l0aCB0aGUgbG9jYWxzLiIsInRvIHRvdXIgdGhlIGNvdW50cnkuIiwidG8gd29yayBhdCB0aGUgc2Nob29sLiJdLCJrZXkiOjF9XX0seyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IkhlcmUgaXMgYSByZXNwb25zZSB0byB0aGUgbWVzc2FnZS4gQ29tcGxldGUgdGhlIHJlc3BvbnNlIGJ5IGZpbGxpbmcgaW4gdGhlIGJsYW5rcy4gU2VsZWN0IHRoZSBiZXN0IGNob2ljZSBmb3IgZWFjaCBibGFuayBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKS4iLCJib2R5IjpbIkhpIE1pa2UsXG5cbkl0XHUyMDE5cyBnb29kIHRvIGhlYXIgeW91Iix7ImIiOjcsIm9wdGlvbnMiOlsiZGlkblx1MjAxOXQgbWluZCB0aGUgYWNjb21tb2RhdGlvbnMiLCJkaWRuXHUyMDE5dCBoYXZlIHRvIHdhbGsgdG8gdGhlIHZpbGxhZ2UiLCJkaWRuXHUyMDE5dCBtaXNzIHRoZSBmbGlnaHQiLCJkaWRuXHUyMDE5dCBnZXQgc2ljayJdLCJrZXkiOjR9LCJldmVuIHRob3VnaCBzb21lIG9mIHlvdXIgZmVsbG93IHZvbHVudGVlcnMgZGlkLiBUaGUgd2VhdGhlciB3YXMgcHJvYmFibHkgYSBmYWN0b3IsIHNvIGJlIHN1cmUgdG8gZHJpbmsgbG90cyBvZiB3YXRlciwgZXNwZWNpYWxseSB3aGVuIix7ImIiOjgsIm9wdGlvbnMiOlsidGVhY2hpbmcgaW4gdGhlIGxvY2FsIHZpbGxhZ2UiLCJ3b3JraW5nIG9uIHRoZSBzY2hvb2wgYWxsIGRheSIsImVhdGluZyB0aGUgbG9jYWwgZm9vZCBuZWFyYnkiLCJnb2luZyBpbnRvIHRoZSBjaXR5Il0sImtleSI6Mn0sIi4gQWxzbywgeW91IHJlYWxseSBzaG91bGRuXHUyMDE5dCB3b3JyeSBhYm91dCIseyJiIjo5LCJvcHRpb25zIjpbImJlaW5nIGluZXhwZXJpZW5jZWQiLCJ0aGUgbGFuZ3VhZ2UgYmFycmllcnMiLCJ0aGUgYWNjb21tb2RhdGlvbnMiLCJzb2NpYWxpemluZyJdLCJrZXkiOjF9LCJhcyBsb25nIGFzIHlvdSB0cnkgdG8gbGVhcm4gYXMgbXVjaCBhcyB5b3UgY2FuIGFib3V0IGNvbnN0cnVjdGlvbi4gWW91IGFyZSBvbmx5IGluIHlvdXIgZmlyc3QgeWVhciBvZiBlbmdpbmVlcmluZy4gWW91IGNhbiB1c2Ugd2hhdCB5b3UgbGVhcm5lZCB3aGVuIHlvdSIseyJiIjoxMCwib3B0aW9ucyI6WyJiZWdpbiB1bml2ZXJzaXR5Iiwic3RhcnQgeW91ciBuZXcgam9iIiwicmV0dXJuIHRvIHlvdXIgY2FyZWVyIiwiZ28gYmFjayB0byB1bml2ZXJzaXR5Il0sImtleSI6NH0sImluIHRoZSBmYWxsLiBGaW5hbGx5LCBpdFx1MjAxOXMgZ3JlYXQgdG8gaGVhciB0aGF0IHlvdSBhcmUiLHsiYiI6MTEsIm9wdGlvbnMiOlsiZ29pbmcgb24gYSB0cmlwIiwidm9sdW50ZWVyaW5nIiwic29jaWFsaXppbmciLCJkYW5jaW5nIl0sImtleSI6MX0sIndpdGggeW91ciBuZXcgZnJpZW5kcywgYnV0IGJlIHN1cmUgdG8gcGxhbiBpdCBjYXJlZnVsbHkgYW5kIGZpbmQgb3V0IGFib3V0IHNhZmV0eSBpc3N1ZXMgYmVmb3JlIHlvdSBnby5cblxuTG92ZSxcbk1vbSJdfV19LHsiaWQiOjIsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMjogUmVhZGluZyB0byBBcHBseSBhIERpYWdyYW0iLCJ0aW1lIjoiOCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGRpYWdyYW0uIiwiaHRtbCI6IjxzdHlsZT4uYWUtd2R7Ym9yZGVyOjFweCBzb2xpZCAjY2JkNWUxO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MTRweDtiYWNrZ3JvdW5kOiNmZmZ9LmFlLXdkLWhlYWR7YmFja2dyb3VuZDojNWM2YjJhO2NvbG9yOiNmZmY7cGFkZGluZzoxMnB4IDE0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLXdkLWhlYWQgaDN7bWFyZ2luOjA7Y29sb3I6I2ZmZjtmb250LXNpemU6MjJweDtsZXR0ZXItc3BhY2luZzouNXB4fS5hZS13ZC1oZWFkIHB7bWFyZ2luOjJweCAwIDA7Y29sb3I6I2ZmZjtmb250LXNpemU6MTZweDtmb250LXN0eWxlOml0YWxpY30uYWUtd2QtdG9we2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MXB4O2JhY2tncm91bmQ6I2NiZDVlMX0uYWUtd2QtaW50cm97YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTJweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjU7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLXdkLWludHJvIC5zb3J0e21hcmdpbjoxMnB4IDAgMDtmb250LXdlaWdodDpib2xkfS5hZS13ZC1zY2hlZHtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo4cHh9LmFlLXdkLXNjaGVkIGg0e21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiMzMzN9LmFlLXdkLXNjaGVkIC5zdWJ7bWFyZ2luOjAgMCA2cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjExLjVweDtmb250LXN0eWxlOml0YWxpYztjb2xvcjojNTU1fS5hZS13ZC1zY2hlZCB0YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtmb250LXNpemU6MTJweH0uYWUtd2Qtc2NoZWQgdGgsLmFlLXdkLXNjaGVkIHRke2JvcmRlcjoxcHggc29saWQgIzk5OTtwYWRkaW5nOjVweCAzcHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLXdkLXNjaGVkIHRkLnBpY2t7YmFja2dyb3VuZDojZjdjNjlhfS5hZS13ZC1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmciAxZnI7Z2FwOjFweDtiYWNrZ3JvdW5kOiNjYmQ1ZTF9LmFlLXdkLWNvbHtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo4cHggMTJweH0uYWUtd2QtY29sIGg0e21hcmdpbjowIDAgNnB4O2JhY2tncm91bmQ6I2RmZThjODtjb2xvcjojMzM0MDFhO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6M3B4O2ZvbnQtc2l6ZToxNHB4fS5hZS13ZC1jb2wgdWx7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjE4cHg7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS41fS5hZS13ZC1ndGV4dHtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjAgMCAxMHB4fS5hZS13ZC1mb290e2JhY2tncm91bmQ6IzVjNmIyYTtjb2xvcjojZmZmO3BhZGRpbmc6OHB4IDE0cHg7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTppdGFsaWN9QG1lZGlhKG1heC13aWR0aDo1NjBweCl7LmFlLXdkLXRvcHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfS5hZS13ZC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9fTwvc3R5bGU+PGRpdiBjbGFzcz1cImFlLXdkXCI+PGRpdiBjbGFzcz1cImFlLXdkLWhlYWRcIj48aDM+V0FTVEUgRElWRVJTSU9OIFBST0dSQU08L2gzPjxwPkNpdHkgb2YgT2FrcmlkZ2U8L3A+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXdkLXRvcFwiPjxkaXYgY2xhc3M9XCJhZS13ZC1pbnRyb1wiPjxwPkhlbHAgdGhlIENpdHkgb2YgT2FrcmlkZ2UgcmVhY2ggdGhlaXIgZ29hbCBvZiA3MCUgd2FzdGUgcmVkdWN0aW9uIGJ5IHBhcnRpY2lwYXRpbmcgaW4gdGhlIGNpdHl3aWRlIFdhc3RlIERpdmVyc2lvbiBQcm9ncmFtLjwvcD48cCBjbGFzcz1cInNvcnRcIj5Tb3J0aW5nIHlvdXIgZ2FyYmFnZSwgcmVjeWNsYWJsZXMsIGFuZCBvcmdhbmljczo8L3A+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXdkLXNjaGVkXCI+PGg0PkNvbGxlY3Rpb24gU2NoZWR1bGUqPC9oND48cCBjbGFzcz1cInN1YlwiPlBpY2stVXAgRGF5cyBIaWdobGlnaHRlZCBpbiBPcmFuZ2U8L3A+PHRhYmxlPjx0cj48dGg+T2FrcmlkZ2UgTm9ydGg8L3RoPjx0aD5PYWtyaWRnZSBDZW50cmU8L3RoPjx0aD5PYWtyaWRnZSBTb3V0aDwvdGg+PC90cj48dHI+PHRkIGNsYXNzPVwicGlja1wiPk1vbmRheTwvdGQ+PHRkPk1vbmRheTwvdGQ+PHRkPk1vbmRheTwvdGQ+PC90cj48dHI+PHRkPlR1ZXNkYXk8L3RkPjx0ZCBjbGFzcz1cInBpY2tcIj5UdWVzZGF5PC90ZD48dGQgY2xhc3M9XCJwaWNrXCI+VHVlc2RheTwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPVwicGlja1wiPlRodXJzZGF5PC90ZD48dGQ+VGh1cnNkYXk8L3RkPjx0ZD5UaHVyc2RheTwvdGQ+PC90cj48dHI+PHRkPkZyaWRheTwvdGQ+PHRkIGNsYXNzPVwicGlja1wiPkZyaWRheTwvdGQ+PHRkPkZyaWRheTwvdGQ+PC90cj48dHI+PHRkPlNhdHVyZGF5PC90ZD48dGQ+U2F0dXJkYXk8L3RkPjx0ZCBjbGFzcz1cInBpY2tcIj5TYXR1cmRheTwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJhZS13ZC1ncmlkXCI+PGRpdiBjbGFzcz1cImFlLXdkLWNvbFwiPjxoND5PcmdhbmljczwvaDQ+PHVsPjxsaT5GcnVpdHM8L2xpPjxsaT5WZWdldGFibGVzPC9saT48bGk+RWdncyBhbmQgRGFpcnk8L2xpPjxsaT5NZWF0ICZhbXA7IFBvdWx0cnkgKEluY2x1ZGluZyBCb25lcyk8L2xpPjxsaT5GaXNoIGFuZCBTZWFmb29kPC9saT48bGk+UGFzdGEgJmFtcDsgR3JhaW5zPC9saT48bGk+QmFrZWQgR29vZHM8L2xpPjxsaT5Db29raW5nIE9pbDwvbGk+PGxpPlRlYSBCYWdzIGFuZCBDb2ZmZWUgR3JvdW5kczwvbGk+PGxpPk5hcGtpbnM8L2xpPjxsaT5QYXBlciBUb3dlbHM8L2xpPjxsaT5QaXp6YSBCb3hlczwvbGk+PGxpPllhcmQgVHJpbW1pbmdzPC9saT48bGk+TGVhdmVzPC9saT48bGk+R3Jhc3MgQ2xpcHBpbmdzPC9saT48bGk+Rmxvd2VycyBhbmQgUGxhbnRzPC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS13ZC1jb2xcIj48aDQ+UmVjeWNsYWJsZXM8L2g0Pjx1bD48bGk+TWl4ZWQgUGFwZXI8L2xpPjxsaT5NYWdhemluZXM8L2xpPjxsaT5OZXdzcGFwZXJzPC9saT48bGk+T2ZmaWNlIFBhcGVyPC9saT48bGk+Q2FyZGJvYXJkPC9saT48bGk+RWdnIENhcnRvbnM8L2xpPjxsaT5NaWxrIENhcnRvbnMgYW5kIEZsYXR0ZW5lZCBKdWdzPC9saT48bGk+QWx1bWludW0gRm9vZCBhbmQgQmV2ZXJhZ2UgQ29udGFpbmVyczwvbGk+PGxpPk1ldGFsIEZvb2QgQ2FuczwvbGk+PGxpPkdsYXNzIEJvdHRsZXMgYW5kIEphcnM8L2xpPjxsaT5KdWljZSBCb3hlczwvbGk+PGxpPkhvdXNlaG9sZCBDb250YWluZXJzPC9saT48bGk+UGxhc3RpYyAoVHlwZXMgMSwgMiwgNCBhbmQvb3IgNSk8L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXdkLWNvbFwiPjxoND5HYXJiYWdlPC9oND48cCBjbGFzcz1cImFlLXdkLWd0ZXh0XCI+V2FzdGUgdGhhdCBjYW5ub3QgYmUgcGxhY2VkIGluIG9yZ2FuaWNzIG9yIHJlY3ljbGFibGVzLiBGb3IgZXhhbXBsZSwgZGlhcGVycywgY2xvdGggYW5kIHRleHRpbGVzLCBvciBhbnkgaXRlbSB0aGF0IGNhbm5vdCBiZSByZXVzZWQgb3IgcmVjeWNsZWQuPC9wPjxoND5XaGF0IFN0YXlzIG91dCBvZiB0aGUgR2FyYmFnZT88L2g0Pjx1bD48bGk+Q2hlbWljYWxzPC9saT48bGk+RXhwbG9zaXZlczwvbGk+PGxpPlBlc3RpY2lkZXM8L2xpPjxsaT5GbGFtbWFibGUgTGlxdWlkczwvbGk+PGxpPkJhdHRlcmllczwvbGk+PGxpPkVsZWN0cm9uaWNzPC9saT48bGk+TWVkaWNhdGlvbnM8L2xpPjxsaT5UaXJlcyBhbmQgQ2FyIFBhcnRzPC9saT48bGk+TW90b3IgT2lsPC9saT48bGk+RGVtb2xpdGlvbiBNYXRlcmlhbHM8L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXdkLWZvb3RcIj4qTm90ZSB0aGF0IHRoZXJlIGlzIG5vIHBpY2stdXAgb24gV2VkbmVzZGF5cy4gSG93ZXZlciwgZHJvcC1vZmZzIGNhbiBiZSBtYWRlIGRpcmVjdGx5IHRvIHRoZSBPYWtyaWRnZSBDaXR5IER1bXAsIGxvY2F0ZWQgYXQgOTQyIE91dGVyIFJpbmcgUm9hZCwgZnJvbSBkYXduIHVudGlsIGR1c2suPC9kaXY+PC9kaXY+In0sImJsb2NrcyI6W3sidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJSZWFkIHRoZSBmb2xsb3dpbmcgZW1haWwgbWVzc2FnZSBhYm91dCB0aGUgZGlhZ3JhbSBvbiB0aGUgbGVmdC4gQ29tcGxldGUgdGhlIGVtYWlsIGJ5IGZpbGxpbmcgaW4gdGhlIGJsYW5rcy4gU2VsZWN0IHRoZSBiZXN0IGNob2ljZSBmb3IgZWFjaCBibGFuayBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKS4iLCJib2R5IjpbIlN1YmplY3Q6IEdhcmJhZ2UgQ29sbGVjdGlvblxuVG86IE1yLiBCb3VkcmVhdSA8Ym91ZHJlYXVAZHVuZGVybWlmZmxpbi5jb20+XG5Gcm9tOiBFbGxhIEZpbmViZXJnIDxlZmluZWJlcmdAY2l0eW9mb2FrcmlkZ2UuY29tPlxuXG5EZWFyIE1yLiBCb3VkcmVhdSxcblxuVGhhbmsgeW91IGZvciB5b3VyIGlucXVpcnkgYWJvdXQgdGhlIE9ha3JpZGdlIFdhc3RlIFByb2dyYW0sIGFuZCB3ZWxjb21lIHRvIHRoZSBjaXR5LiBJXHUyMDE5dmUgYXR0YWNoZWQgYW4gaW5mb3JtYXRpb24gZmx5ZXIgdGhhdCBzaG91bGQgYW5zd2VyIHlvdXIgcXVlc3Rpb25zLiBZb3VyIGNvb3BlcmF0aW9uIHdvdWxkIGJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQgaW4gb3JkZXIgdG8gaGVscCBvdXIgd2FzdGUgcHJvZ3JhbSIseyJiIjoxLCJvcHRpb25zIjpbIm1lZXQgaXRzIGdhcmJhZ2UgcmVkdWN0aW9uIHRhcmdldCIsImluY3JlYXNlIGRyb3Atb2ZmcyB0byB0aGUgZHVtcCIsImVkdWNhdGUgdGhlIHB1YmxpYyBhYm91dCBoYXphcmRvdXMgd2FzdGUiLCJkZXZlbG9wIGEgbW9yZSBjb252ZW5pZW50IHBpY2stdXAgc2NoZWR1bGUiXSwia2V5IjoxfSwiLlxuXG5UaGUgY29sbGVjdGlvbiBzY2hlZHVsZSBzaG93cyB0aGF0IHlvdXIgYXJlYSwgT2FrcmlkZ2UgQ2VudHJlLCBoYXMgcGljay11cCBvbiBUdWVzZGF5cyBhbmQgRnJpZGF5cy4gUGxlYXNlIG5vdGUgdGhhdCB0aGVyZVx1MjAxOXMgbm8gcGljay11cCBvbiBXZWRuZXNkYXlzIGluIGFueSBuZWlnaGJvdXJob29kLCBidXQgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiIseyJiIjoyLCJvcHRpb25zIjpbImNoYW5naW5nIGNvbGxlY3Rpb24gc2NoZWR1bGVzIiwiYXJyYW5naW5nIGEgc3BlY2lhbCBwaWNrLXVwIiwicmVxdWVzdGluZyBUaHVyc2RheXMgaW5zdGVhZCIsInRha2luZyB0cmFzaCB0byB0aGUgbGFuZGZpbGwiXSwia2V5Ijo0fSwiLCBpZiBuZWNlc3NhcnkuXG5cbkNhcmRib2FyZCBvZiBhbGwgc2l6ZXMgaXMgcmVjeWNsYWJsZSwgd2hlcmVhcyBzbWFsbCBib3hib2FyZCB1c2VkIGluIHByb2R1Y3RzIGxpa2UiLHsiYiI6Mywib3B0aW9ucyI6WyJlZ2cgY2FydG9ucyIsImZvb2QgYm94ZXMiLCJiZXZlcmFnZSBjYXJ0b25zIiwic2hpcHBpbmcgYm94ZXMiXSwia2V5IjoyfSwiZ29lcyBpbiB5b3VyIG9yZ2FuaWMgZ3JlZW4gYmluLiBSZWdhcmRpbmcgcGxhbnRzIHRoYXQgd2VyZSBzcHJheWVkIHdpdGggcGVzdGljaWRlcywgdGhlIGRlYWQgcGxhbnRzIGdvIGludG8gb3JnYW5pY3MsIGJ1dCB0aGUgZW1wdHkgcGVzdGljaWRlIGNvbnRhaW5lciIseyJiIjo0LCJvcHRpb25zIjpbImNhbm5vdCBnbyBpbiB0aGUgdHJhc2giLCJnb2VzIGludG8gdGhlIHJlY3ljbGluZyIsImlzblx1MjAxOXQgZGFuZ2Vyb3VzIHdhc3RlIiwic2hvdWxkIGdvIGluIHRoZSBkdW1wIl0sImtleSI6MX0sIi4gRmluYWxseSwgYW55IGl0ZW0gdGhhdCBjYW5ub3QgYmUgcmVjeWNsZWQgb3IgaXMgbm90IGNvbnNpZGVyZWQgb3JnYW5pYyB3YXN0ZSBzaG91bGQgYmUiLHsiYiI6NSwib3B0aW9ucyI6WyJyZXVzZWQgaWYgcG9zc2libGUiLCJkaXNwb3NlZCBvZiBzYWZlbHkiLCJwbGFjZWQgaW4gdGhlIGdhcmJhZ2UiLCJwaWNrZWQgdXAgc2VwYXJhdGVseSJdLCJrZXkiOjN9LCIuXG5cbkkgdW5kZXJzdGFuZCB5b3VyIG9waW5pb24gdGhhdCB0aGUgV2FzdGUgRGl2ZXJzaW9uIFByb2dyYW0gY2FuIGJlIGluY29udmVuaWVudCwgYnV0IHdlIHJlY2VudGx5IGV4dGVuZGVkIG91ciBwaWNrLXVwcyB0byB0d2ljZSBhIHdlZWsgdG8gYXNzaXN0IG91ciByZXNpZGVudHMgaW4gcmVkdWNpbmcgd2FzdGUuXG5cblJlZ2FyZHMsXG5cbkVsbGEgRmluZWJlcmciXX0seyJ0eXBlIjoic3RlbWxpc3QiLCJpbnN0ciI6IlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbi4iLCJpdGVtcyI6W3sibiI6NiwicHJlIjoiV2h5IGRvZXMgTXIuIEJvdWRyZWF1IG5lZWQgaW5mb3JtYXRpb24gYWJvdXQgd2FzdGUgY29sbGVjdGlvbj8iLCJvcHRpb25zIjpbIkhpcyBwaWNrLXVwIHNjaGVkdWxlIGhhcyBjaGFuZ2VkLiIsIkhlIHdvdWxkIGxpa2Ugc3RyaWN0ZXIgcmVndWxhdGlvbnMuIiwiSGUgaXMgYSBuZXcgcmVzaWRlbnQgb2YgdGhlIGNpdHkuIiwiSGUgd2FzIGZpbmVkIGZvciBub3Qgc29ydGluZyBoaXMgd2FzdGUuIl0sImtleSI6M30seyJuIjo3LCJwcmUiOiJXaG8gaXMgTXMuIEZpbmViZXJnPyIsIm9wdGlvbnMiOlsiYSBuZWlnaGJvdXIiLCJhIGNpdHkgZW1wbG95ZWUiLCJhbiBlbnZpcm9ubWVudGFsaXN0IiwiYSBnYXJiYWdlIGNvbGxlY3RvciJdLCJrZXkiOjJ9LHsibiI6OCwicHJlIjoiV2hhdCB3aWxsIE1yLiBCb3VkcmVhdSBwcm9iYWJseSBkbyBuZXh0PyIsIm9wdGlvbnMiOlsic3RvcCBwYXJ0aWNpcGF0aW5nIGluIHRoZSBwcm9ncmFtIiwicmV2aWV3IHRoZSBhdHRhY2hlZCBmbHllciIsImZpbGUgYSBjb21wbGFpbnQgd2l0aCB0aGUgY2l0eSIsImJyaW5nIGhpcyB3YXN0ZSB0byB0aGUgZHVtcCJdLCJrZXkiOjJ9XX1dfSx7ImlkIjozLCJuYW1lIjoiUmVhZGluZyBQYXJ0IDM6IFJlYWRpbmcgZm9yIEluZm9ybWF0aW9uIiwidGltZSI6IjkgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBwYXNzYWdlLiIsImh0bWwiOiI8cD48c3Ryb25nPkEuPC9zdHJvbmc+IFR3byB3b3JsZHdpZGUgeW91dGggb3JnYW5pemF0aW9ucyB0aGF0IGhhdmUgYmVlbiBwb3B1bGFyIGluIENhbmFkYSBmb3IgbW9yZSB0aGFuIGEgY2VudHVyeSBhcmUgQm95IFNjb3V0cyBhbmQgR2lybCBHdWlkZXMuIFNjb3V0aW5nIGdyb3VwcyBzdGFydGVkIHVwIGluIE9udGFyaW8gYW5kIE5vdmEgU2NvdGlhIHNob3J0bHkgYWZ0ZXIgTG9yZCBCYWRlbiBQb3dlbGwgZm91bmRlZCB0aGUgQm95IFNjb3V0cyBBc3NvY2lhdGlvbiBpbiBFbmdsYW5kIGluIDE5MDcuIEFyb3VuZCB0aGUgc2FtZSB0aW1lLCB0aGUgQ2FuYWRpYW4gR2lybCBHdWlkZXMgQ29tcGFueSBiZWdhbiBpbiBPbnRhcmlvLiBCb3RoIGdyb3VwcyBvcmdhbml6ZSBzcG9ydHMsIGdhbWVzLCBhbmQgb3V0ZG9vciBhY3Rpdml0aWVzLCBzdWNoIGFzIGNhbXBpbmcsIGluIG9yZGVyIHRvIHByb21vdGUgdGhlIGVtb3Rpb25hbCwgcGh5c2ljYWwsIGFuZCBzcGlyaXR1YWwgd2VsbGJlaW5nIG9mIHlvdXRocy4gQm90aCBhdHRyYWN0IGVudGh1c2lhc3RpYyBsZWFkZXJzLCB1c3VhbGx5IGZvcm1lciBHdWlkZXMgb3IgU2NvdXRzIHRoZW1zZWx2ZXMuPC9wPjxwPjxzdHJvbmc+Qi48L3N0cm9uZz4gU2NvdXRzIGFuZCBHdWlkZXMgaGF2ZSBzaW1pbGFyIG9yZ2FuaXphdGlvbmFsIHN0cnVjdHVyZXMgYW5kIGdvYWxzLiBUaGV5IHNlcnZlIGNoaWxkcmVuIGFuZCB5b3VuZyBhZHVsdHMgd2l0aGluIHRoZSBhZ2VzIG9mIDUgdG8gMTcgaW4gZml2ZSBzZXBhcmF0ZSBhZ2UgZ3JvdXBzLiBObyBldmFsdWF0aW9uIG9yIGNyaXRlcmlhIG90aGVyIHRoYW4gYWdlIGFmZmVjdHMgbW92aW5nIGZyb20gb25lIGdyb3VwIHRvIGFub3RoZXIuIFdoZXJlYXMgR3VpZGVzIGF0dHJhY3RzIGFnZXMgNyB0byAxMSwgU2NvdXRzIGlzIHBvcHVsYXIgd2l0aCBhZ2VzIDUgdG8gMTAuIEJ5IHRoZSB0ZWVuYWdlIHllYXJzLCBpbnRlcmVzdCB3YW5lcyBzaWduaWZpY2FudGx5LiBTaW5jZSAxOTkyLCBhbGwgc2VjdGlvbnMgb2YgU2NvdXRzIGhhdmUgYmVlbiBjb2VkLCB3aGVyZWFzIEd1aWRlcyBjb250aW51ZXMgdG8gYmUgZXhjbHVzaXZlbHkgZ2lybHMuIEd1aWRlcyBlbnJvbG1lbnRzIGRpZG4mcnNxdW87dCBzdWZmZXIgZnJvbSBTY291dHMgYnJvYWRlbmluZyB0aGVpciBtYXJrZXQ7IGhvd2V2ZXIsIFNjb3V0cyBleHBlcmllbmNlZCBjcml0aWNpc20gZm9yIGluY2x1ZGluZyBnaXJscy48L3A+PHA+PHN0cm9uZz5DLjwvc3Ryb25nPiBNZW1iZXJzaGlwIHdhcyBicmlzayB0aHJvdWdoIG11Y2ggb2YgdGhlIHR3ZW50aWV0aCBjZW50dXJ5LCBhbHRob3VnaCBpdCBoYXMgZGVjbGluZWQgc2lnbmlmaWNhbnRseSBpbiByZWNlbnQgeWVhcnMuIEluIENhbmFkYSwgR2lybCBHdWlkZXMgZXhwZXJpZW5jZWQgYSBtZW1iZXJzaGlwIGRlY2xpbmUgb2YgbW9yZSB0aGFuIDUwJSBieSAyMDEyLiBTY291dHMgQ2FuYWRhIHJlYWNoZWQgaXRzIHBlYWsgaW4gMTk2NSB3aXRoIDI4NSwwMDAgbWVtYmVycyBidXQgaGFzIHNpbmNlIGRlY3JlYXNlZCBieSA3MCUuIFdoeSB3ZXJlIHRoZXNlIHByb2dyYW1zIHNvIGludGVyZXN0aW5nIHRvIHlvdXRocyBpbiB0aGUgcGFzdD8gRm9yIG1hbnkgaXQgd2FzIGEgd2F5IHRvIG1ha2UgZnJpZW5kcywgaGF2ZSBmdW4sIGFuZCBlbmpveSB0aGUgb3V0ZG9vcnMuIEl0IHdhcyBjYW1waW5nIGFuZCBnaG9zdCBzdG9yaWVzLCBlYXJuaW5nIGJhZGdlcywgYXR0ZW5kaW5nIG5hdGlvbmFsIGFuZCBpbnRlcm5hdGlvbmFsIGphbWJvcmVlcywgYW5kIHdlYXJpbmcgYSB1bmlmb3JtIHRoYXQgaWRlbnRpZmllZCB5b3UgYXMgb25lIG9mIHRoZSBncm91cC4gVGhlIHlvdXRocyBvZiB0aGUgdHdlbnR5LWZpcnN0IGNlbnR1cnkgYXJlIG1vcmUgaW50ZXJlc3RlZCBpbiBpbnRlcm5ldC1iYXNlZCBhY3Rpdml0aWVzLiBCb3RoIEd1aWRlcyBhbmQgU2NvdXRzIGFyZSBub3cgdHJ5aW5nIHRvIGFkYXB0IHRvIHRoZSBpbnRlcmVzdHMgb2YgdG9kYXkmcnNxdW87cyB5b3V0aC48L3A+PHA+PHN0cm9uZz5ELjwvc3Ryb25nPiBNb3N0IG9mIHRoZSBTY291dHMgYW5kIEd1aWRlcyBncm91cHMgYXJlIHJ1biBieSBkZWRpY2F0ZWQgYWR1bHRzIHdobyBnbyB0aHJvdWdoIGFuIGludGVydmlldywgcmVmZXJlbmNlIGNoZWNrLCBhbmQgcG9saWNlIGNoZWNrLCBmb2xsb3dlZCBieSBhIHRyYWluaW5nIHByb2dyYW0uIEl0JnJzcXVvO3Mgbm90IGFuIGVhc3kgdm9sdW50ZWVyIGpvYiwgcmVxdWlyaW5nIHRoZSBwbGFubmluZyBvZiB3ZWVrbHkgbWVldGluZ3MsIG9yZ2FuaXppbmcgY2FtcGluZyB0cmlwcywgbWFuYWdpbmcgeW91bmcgcGVyc29uYWxpdGllcywgYW5kIGF0dGVuZGluZyBwZXJpb2RpYyB0cmFpbmluZyB3ZWVrZW5kcy4gSW4gdGhlIHBhc3QsIHBhcmVudHMgd2VyZSBvZnRlbiB0aGUgbGVhZGVycywgYnV0IG5vd2FkYXlzIHRoZXkgYXJlIHRvbyBidXN5IGJhbGFuY2luZyBqb2JzLCBjaG9yZXMsIGFuZCB0aGVpciBjaGlsZHJlbiZyc3F1bztzIHNwb3J0cyBvciBtdXNpYyBldmVudHMuIEl0IHJlbWFpbnMgdG8gYmUgc2VlbiB3aGV0aGVyIHRoZXNlIHR3byBpbW1lbnNlbHkgcG9wdWxhciB5b3V0aCBvcmdhbml6YXRpb25zIG9mIHRoZSB0d2VudGlldGggY2VudHVyeSB3aWxsIGVuZHVyZSB0aHJvdWdoIHRoZSB0d2VudHktZmlyc3QuPC9wPjxwPjxzdHJvbmc+RS48L3N0cm9uZz4gTm90IGdpdmVuIGluIGFueSBvZiB0aGUgYWJvdmUgcGFyYWdyYXBocy48L3A+In0sImJsb2NrcyI6W3sidHlwZSI6Im1hdGNoIiwiaW5zdHIiOiJEZWNpZGUgd2hpY2ggcGFyYWdyYXBoLCBBIHRvIEQsIGhhcyB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gZWFjaCBzdGF0ZW1lbnQgYmVsb3cuIFNlbGVjdCBFIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBub3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBwYXJhZ3JhcGhzLiIsImxldHRlcnMiOlsiQSIsIkIiLCJDIiwiRCIsIkUiXSwiaXRlbXMiOlt7Im4iOjEsInRleHQiOiJTY291dHMgaGFzIGVkdWNhdGlvbmFsIGdvYWxzIHRoYXQgaGVscCBib3lzIGFjaGlldmUgYWNhZGVtaWMgcmVjb2duaXRpb24uIiwia2V5Ijo1fSx7Im4iOjIsInRleHQiOiJUaGUgZnV0dXJlIG9mIHRoZSB0d28geW91dGggb3JnYW5pemF0aW9ucyBpcyB1bmNlcnRhaW4uIiwia2V5Ijo0fSx7Im4iOjMsInRleHQiOiJDaGlsZHJlbiBpbiBib3RoIG9yZ2FuaXphdGlvbnMgZW5qb3llZCB0aGUgc29jaWFsIGFjdGl2aXRpZXMuIiwia2V5IjozfSx7Im4iOjQsInRleHQiOiJHdWlkZSBhbmQgU2NvdXQgbGVhZGVycyBvZmZlciB0aGVpciBzZXJ2aWNlcyBhdCBubyBjaGFyZ2UuIiwia2V5Ijo0fSx7Im4iOjUsInRleHQiOiJUaGUgU2NvdXRzIGFuZCBHdWlkZXMgYXJlIGNvbnNpZGVyaW5nIHVuaWZ5aW5nIGFzIG9uZSBjby1lZCBvcmdhbml6YXRpb24uIiwia2V5Ijo1fSx7Im4iOjYsInRleHQiOiJQYXJlbnRzIHdobyB3ZXJlIEd1aWRlcyBvciBTY291dHMgZW5jb3VyYWdlIHRoZWlyIGNoaWxkcmVuIHRvIGpvaW4uIiwia2V5Ijo1fSx7Im4iOjcsInRleHQiOiJMZWFkZXJzIHdlcmUgb2Z0ZW4gbWVtYmVycyBvZiBvbmUgb2YgdGhlIG9yZ2FuaXphdGlvbnMuIiwia2V5IjoxfSx7Im4iOjgsInRleHQiOiJPbGRlciBjaGlsZHJlbiBhcmUgbGVzcyBsaWtlbHkgdG8gYmUgaW50ZXJlc3RlZCBpbiB0aGUgc2NvdXRpbmcgcHJvZ3JhbXMuIiwia2V5IjoyfSx7Im4iOjksInRleHQiOiJDaGlsZHJlbiB1c2VkIHRvIGVuam95IHRoZSBzb2NpYWwgYXNwZWN0IG9mIHRoZSBncm91cCBhY3Rpdml0aWVzLiIsImtleSI6M31dfV19LHsiaWQiOjQsIm5hbWUiOiJSZWFkaW5nIFBhcnQgNDogUmVhZGluZyBmb3IgVmlld3BvaW50cyIsInRpbWUiOiIxMiBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGUgZnJvbSBhIHdlYnNpdGUuIiwiaHRtbCI6IjxwPkFjY291bnQgYWdncmVnYXRvcnMgYXJlIGFwcHMgdGhhdCBsZXQgeW91IHNlZSBhbmQgdHJhY2sgYWxsIHlvdXIgc2F2aW5ncyBhbmQgZXhwZW5kaXR1cmVzIHRvZ2V0aGVyIGluIG9uZSBwbGFjZS4gT25lIGV4YW1wbGUgaXMgRmxvcmlkYS1iYXNlZCBXZWFsdGguY29tLCB3aGljaCBjb2xsZWN0cyBhIHdob3BwaW5nIDcgeWVhcnMmcnNxdW87IHdvcnRoIG9mIHRyYW5zYWN0aW9ucyBmcm9tIHlvdXIgYmFuayBhY2NvdW50cywgY3JlZGl0IGNhcmRzLCBhbmQgaW52ZXN0bWVudHMgYW5kIHNlcnZlcyBpdCB1cCBpbiB0YW50YWxpemluZyBwaWUgY2hhcnRzLjwvcD48cD4mbGRxdW87V2VhbHRoLmNvbSBsZXRzIG1lIGFuYWx5emUgbXkgc3BlbmRpbmcgcGF0dGVybnMsJnJkcXVvOyBzYXlzIGN1c3RvbWVyIEFkcmllbm5lIEh5c2xvcC4gJmxkcXVvO0l0IHNob3dlZCBtZSBob3cgbXVjaCBJIHdhcyBzcGVuZGluZyBvbiBsYXR0ZXMgYW5kIGJhbmtpbmcgZmVlcy4gSXQgaGVscGVkIG1lIHN0aWNrIHRvIGEgYnVkZ2V0LCBiZSB0aHJpZnR5LCBhbmQgc2F2ZSBmb3IgbXkga2lkcyZyc3F1bzsgY29sbGVnZSBlZHVjYXRpb24uJnJkcXVvOzwvcD48cD5CdXQgZmluYW5jZSBjb2x1bW5pc3QgRWxzYSBCYWxrYSBjb3Vuc2VscyBjYXV0aW9uLiAmbGRxdW87UmVhZCB5b3VyIGJhbmtpbmcgY29udHJhY3QsJnJkcXVvOyBzaGUgc2F5cy4gJmxkcXVvO1VzaW5nIGFuIGFnZ3JlZ2F0b3IgaW52b2x2ZXMgZGlzY2xvc2luZyB5b3VyIGNsaWVudCBudW1iZXIgYW5kIHBhc3N3b3JkIHRvIGEgdGhpcmQgcGFydHkuIFRoYXQgcHV0cyB5b3UgaW4gZGVmYXVsdCBvZiB5b3VyIG9ubGluZSBiYW5raW5nIGFncmVlbWVudC4gQnkgdm9sdW50YXJpbHkgc2hhcmluZyB0aGlzIGRhdGEgd2l0aCBhIHBhcnR5IG90aGVyIHRoYW4gdGhlIGJhbmssIHlvdSB2b2lkIHRoZSBiYW5rJnJzcXVvO3MgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBpbnN1cmUgeW91ciBpbnZlc3RtZW50cyBhZ2FpbnN0IGFueSBwb3NzaWJsZSBmcmF1ZHVsZW50IHVzZS4mcmRxdW87IE1zLiBCYWxrYSBhZGRzIHRoYXQgYWNjb3VudCBhZ2dyZWdhdG9ycyBhcmUgdHlwaWNhbGx5IFVTIGNvbXBhbmllcywgc3RvcmluZyB5b3VyIGRhdGEgYWNyb3NzIHRoZSBib3JkZXIgd2hlcmUgaXQmcnNxdW87cyBub3Qgc3ViamVjdCB0byBDYW5hZGlhbiBsYXdzLjwvcD48cD5Db25zdW1lciBvbWJ1ZHNtYW4gTGF1cmVsZWkgUmV5bm9sZHMgaGFzIGludmVzdGlnYXRlZCB0aGUgY29udmVuaWVudCAmbGRxdW87aW4taG91c2UmcmRxdW87IGFnZ3JlZ2F0b3JzIHByb3ZpZGVkIGJ5IHRoZSBiaWcgYmFua3MgdGhlbXNlbHZlcywgc3VjaCBhcyBIZXhhZ29uIEJhbmsmcnNxdW87cyBxdWljay1hbmQtZWFzeSBNb25leVZpZXdlciBhcHAsIGludGVncmF0ZWQgaW50byB0aGUgZmluYW5jaWFsIGdpYW50JnJzcXVvO3Mgb25saW5lIGJhbmtpbmcgcGxhdGZvcm0uIEN1c3RvbWVycyB3aG8gY2xpY2sgdGhlIE1vbmV5Vmlld2VyIGxpbmsgYXV0b21hdGljYWxseSBsYXVuY2ggYW4gYWdncmVnYXRvciB3aG9zZSB1c2UgaXMgY292ZXJlZCBieSBhIHNlcGFyYXRlIHNlY3Rpb24gb2YgdGhlIG9ubGluZSBiYW5raW5nIGNvbnRyYWN0LiBUaGVyZSwgUmV5bm9sZHMgZmluZHMgY29tcGxleCBzdGlwdWxhdGlvbnMgdGhhdCBjb21wcm9taXNlIHRoZSBjb25zdW1lciZyc3F1bztzIGxlZ2FsIHJpZ2h0IHRvIGNvbXBlbnNhdGlvbiBpZiBkYXRhIG9yIGlkZW50aXR5IHRoZWZ0IG9jY3Vycy4gJmxkcXVvO1llcywgTW9uZXlWaWV3ZXIgaXMgYmFuay1mcmllbmRseSwgbm90ICZsc3F1bzt0aGlyZC1wYXJ0eSwmcnNxdW87JnJkcXVvOyBzaGUgY29uY2VkZXMuICZsZHF1bztTdGlsbCwgYmVhciBpbiBtaW5kLCBpZiBhIGNvbnN1bWVyIG11c3QgYnJlYWNoIGhlciBjb250cmFjdCBpbiBvcmRlciB0byB1c2UgdGhlIHByb2R1Y3Qgb3Igc2VydmljZSB0aGF0IHRoZSBjb250cmFjdCBwcm9taXNlcyB0byBwcm92aWRlLCB0aGVuIHRoZSBjb250cmFjdCBpcyB1bmZhaXIuJnJkcXVvOzwvcD48cD5UaGF0JnJzcXVvO3Mgd2VsY29tZSBuZXdzIHRvIFJvYWxkIFdlaXNzLCBDRU8gb2YgV2VhbHRoLmNvbS4gJmxkcXVvO091ciBzZWN1cml0eSBwcm90b2NvbHMgYXJlIHN0YXRlLW9mLXRoZS1hcnQsJnJkcXVvOyBXZWlzcyBzYXlzLiAmbGRxdW87V2UgdXNlIHRoZSBzYW1lIGVuY3J5cHRpb24gdGVjaG5pcXVlcyBhcyB0aGUgYXJteS4gVGhlIHJlYWwgcmVhc29uIHRoZSBiaWcgYmFua3MgZG9uJnJzcXVvO3Qgd2FudCB5b3UgdXNpbmcgb3VyIHByb2R1Y3QgaXMgdGhhdCB3ZSByZXZlYWwgdGhlaXIgaGlkZGVuIGZlZXMuIFdlIHNob3cgeW91IHdoYXQgdGhleSZyc3F1bztyZSBhY3R1YWxseSBjaGFyZ2luZy4mcmRxdW87PC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gb24gdGhlIHdlYnNpdGUuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IldoYXQgaXMgdGhlIGF1dGhvclx1MjAxOXMgYXR0aXR1ZGUgdG93YXJkcyBhY2NvdW50IGFnZ3JlZ2F0b3JzPyIsIm9wdGlvbnMiOlsicG9zaXRpdmUiLCJjb25jZXJuZWQiLCJuZXV0cmFsIiwiYW5ncnkiXSwia2V5IjozfSx7Im4iOjIsInByZSI6Ik9uZSBzdGF0ZWQgZGlzYWR2YW50YWdlIG9mIGFnZ3JlZ2F0b3JzIGlzIHRoYXQgdGhleSIsIm9wdGlvbnMiOlsiY29sbGVjdCBvbmx5IHNldmVuIHllYXJzXHUyMDE5IHdvcnRoIG9mIGJhbmtpbmcgZGF0YS4iLCJzaGFyZSBjbGllbnQgZmluYW5jaWFsIGluZm9ybWF0aW9uIHdpdGggb3RoZXIgYmFua3MuIiwibnVsbGlmeSB0aGUgYmFua1x1MjAxOXMgYWNjb3VudCBwcm90ZWN0aW9uIGNvbW1pdG1lbnQuIiwib2ZmZXIgZGlmZmVyZW50IGNvbnRyYWN0cyB0byBBbWVyaWNhbnMgYW5kIENhbmFkaWFucy4iXSwia2V5IjozfSx7Im4iOjMsInByZSI6IldobyB3b3VsZCBMYXVyZWxlaSBSZXlub2xkcyBtb3N0IGxpa2VseSBhZ3JlZSB3aXRoPyIsIm9wdGlvbnMiOlsidGhlIGZpbmFuY2UgY29sdW1uaXN0IiwidGhlIENFTyBvZiBXZWFsdGguY29tIiwiSGV4YWdvbiBCYW5rIiwiV2VhbHRoLmNvbSBjdXN0b21lcnMiXSwia2V5IjoxfSx7Im4iOjQsInByZSI6IkFuIGFwcHJvcHJpYXRlIHRpdGxlIHdvdWxkIGJlIFx1MjAxY0FjY291bnQgQWdncmVnYXRvcnM6Iiwib3B0aW9ucyI6WyJDYW4gdGhleSBoZWxwIHlvdSBzYXZlIG1vbmV5P1x1MjAxZCIsIkRvZXMgeW91ciBiYW5rIGFwcHJvdmUgb2YgdGhlbT9cdTIwMWQiLCJJcyBvbmUga2luZCBiZXR0ZXIgdGhhbiBhbm90aGVyP1x1MjAxZCIsIlNob3VsZCB5b3UgcmVhbGx5IGJlIHVzaW5nIHRoZW0\/XHUyMDFkIl0sImtleSI6NH0seyJuIjo1LCJwcmUiOiJXZSBjYW4gcmVhc29uYWJseSBjb25jbHVkZSBmcm9tIHRoZSBhcnRpY2xlIHRoYXQiLCJvcHRpb25zIjpbImNvbnN1bWVycyBzaG91bGQga2VlcCBjbG9zZSB0cmFjayBvZiB0aGVpciBleHBlbnNlcy4iLCJpZGVudGl0eSB0aGVmdCBpcyBtb3JlIHByZXZhbGVudCBpbiB0aGUgVVMgdGhhbiBpbiBDYW5hZGEuIiwicGVyc29uYWwgYmFua2luZyBkb2N1bWVudHMgZGVzZXJ2ZSBjYXJlZnVsIHJlYWRpbmcuIiwidGhlIGJlbmVmaXRzIG9mIG9ubGluZSBiYW5raW5nIG91dHdlaWdoIHRoZSByaXNrcy4iXSwia2V5IjozfV19LHsidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCJib2R5IjpbIlRoaXMgaXMgYW4gaW50ZXJlc3RpbmcgY29tbWVudCBmcm9tIHRoZSBjb3Jwb3JhdGUgY2hpZWYgZXhlY3V0aXZlIG9mZmljZXIuIEhlIHNlZW1zIHRvIHRoaW5rIHRoZSBiaWcgYmFua3MgaGF0ZSBhZ2dyZWdhdG9ycyBvbmx5IGJlY2F1c2UgdGhlc2UgYXBwcyBnaXZlIGJhbmsgY3VzdG9tZXJzIGdvb2QgcmVhc29ucyB0byIseyJiIjo2LCJvcHRpb25zIjpbImZpbmQgYSBiZXR0ZXIgYmFua2luZyBwYWNrYWdlIiwic3BlbmQgbW9uZXkgaW5zdGVhZCBvZiBpbnZlc3QgaXQiLCJkZW1hbmQgc3RyaWN0ZXIgc2VjdXJpdHkgcHJvdG9jb2xzIiwidXNlIGNhc2ggaW5zdGVhZCBvZiBjcmVkaXQgY2FyZHMiXSwia2V5IjoxfSwiLiBCdXQgaXRcdTIwMTlzIG1vcmUgdGhhbiB0aGF0LiBBcyBhbnlvbmUgY2FuIGdsZWFuIGZyb20gdGhlIGFydGljbGUsIGJhbmtzIGRpc2xpa2UgaG93IHRoZXNlIGFwcHMiLHsiYiI6Nywib3B0aW9ucyI6WyJjaGFuZ2UgdGhlIG9ubGluZSBiYW5rIGNvbnRyYWN0cyIsImdhaW4gYWNjZXNzIHRvIGJhbmsgY3VzdG9tZXIgZGF0YSIsInB1dCBmaW5hbmNpYWwgaW5zdGl0dXRpb25zXHUyMDE5IGFzc2V0cyBhdCByaXNrIiwiYW1hbGdhbWF0ZSBtb3JlIGRhdGEgdGhhbiB0aGVpciBvd24gYXBwcyJdLCJrZXkiOjJ9LCIuIFNvIGl0IHNlZW1zIHN0cmFuZ2UgdGhhdCBzb21lIGJhbmtzIGFyZSBwcm92aWRpbmcgdGhlaXIgY2xpZW50cyB3aXRoIHRoZWlyIG93biB2ZXJzaW9uIG9mIHRoZXNlIGFwcHMuIFByZXN1bWFibHkgdGhpcyBpcyBiZWNhdXNlIHRoZSBiYW5rcyBmZWVsIHRoZSIseyJiIjo4LCJvcHRpb25zIjpbImN1c3RvbWVyIiwiaW52ZXN0bWVudCIsInBhc3N3b3JkIiwicHJvZHVjdCJdLCJrZXkiOjR9LCJ5b3Uga25vdyBpcyBiZXR0ZXIgdGhhbiB0aGUgb25lIHlvdSBkb25cdTIwMTl0LiBBdCBhbnkgcmF0ZSwgc2ltaWxhciB0byB0aGUgY29uc3VtZXIgYWR2b2NhdGUgcXVvdGVkLCBJIGZpbmQgSGV4YWdvblx1MjAxOXMgdXNlIG9mIGFuIGluLWhvdXNlIGFnZ3JlZ2F0b3IiLHsiYiI6OSwib3B0aW9ucyI6WyJkaXNob25lc3QiLCJncmVlZHkiLCJ1bmhlbHBmdWwiLCJkaXNjcmltaW5hdG9yeSJdLCJrZXkiOjF9LCIuIFRoZSB3aG9sZSBzaXR1YXRpb24ganVzdCBzZXJ2ZXMgdG8gcmVtaW5kIGJhbmsgY3VzdG9tZXJzIHRoYXQiLHsiYiI6MTAsIm9wdGlvbnMiOlsiaG9uZXN0eSBpcyB0aGUgYmVzdCBwb2xpY3kiLCJpdFx1MjAxOXMgYmVzdCB0byBsb29rIGJlZm9yZSB5b3UgbGVhcCIsIm1vbmV5IGRvZXNuXHUyMDE5dCBncm93IG9uIHRyZWVzIiwiZXZlcnkgY2xvdWQgaGFzIGEgc2lsdmVyIGxpbmluZyJdLCJrZXkiOjJ9LCIuIl19XX1dfTsKCmZ1bmN0aW9uIGNsYkVzdGltYXRlUihyYXcpewogIGlmIChyYXcgPj0gMzUpIHJldHVybiB7IGxldmVsOidDRUxQSVAgMTBcdTIwMTMxMicsIG5vdGU6J0FkdmFuY2VkIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMzApIHJldHVybiB7IGxldmVsOidDRUxQSVAgOScsICBub3RlOidFZmZlY3RpdmUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyNykgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA4JywgIG5vdGU6J0dvb2QgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyMikgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA3JywgIG5vdGU6J0FkZXF1YXRlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNicsICBub3RlOidEZXZlbG9waW5nIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTEpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNScsICBub3RlOidBY3F1aXJpbmcgcHJvZmljaWVuY3knIH07CiAgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA0IG9yIGJlbG93Jywgbm90ZTonS2VlcCBwcmFjdGljaW5nIScgfTsKfQoKKGZ1bmN0aW9uKCl7CiAgLyogLS0tLSBpbmplY3Qgc2NvcGVkIENTUyAoV29yZFByZXNzLXNhZmU6IDxzdHlsZT4gaW4gY29udGVudCBjYW4gYmUgc3RyaXBwZWQpIC0tLS0gKi8KICB2YXIgQ1NTID0gYAouY2xwci13cmFwey0tbmF2eTojMDUwRTIwOy0tYjkwMDojMEQyMzUyOy0tYjcwMDojMTI0NUE4Oy0tYjUwMDojMjU2M0VCOy0tYjQwMDojM0I4MkY2Oy0tYjIwMDojOTNDNUZEOy0tYjEwMDojREJFQUZFOy0tYjUwOiNFRkY2RkY7LS10ZWFsOiMwRDk0ODg7LS1jeWFuOiMwNkI2RDQ7LS1ncmVlbjojMTBCOTgxOy0tZ3JlZW41MDojRUNGREY1Oy0tcm9zZTojRjQzRjVFOy0tdGV4dDojMEYxNzJBOy0tbXV0ZWQ6IzQ3NTU2OTstLXN1YnRsZTojOTRBM0I4Oy0tYm9yZGVyOiNFMkU4RjA7LS1iYXItYmc6I0U4RUJFRjstLWJhci1ib3JkZXI6I0QzRDlFMDstLWJhci10ZXh0OiMxRjI5Mzc7LS1wYW5lbC1wLWJnOiNGNEY1Rjc7LS1wYW5lbC1wLWJvcmRlcjojRTNFNkVBOy0tcGFuZWwtcS1iZzojRTlGNEY3Oy0tcGFuZWwtcS1ib3JkZXI6I0Q2RThFRDstLWRkLW9wZW4tYmc6I0NCRUJGNDtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxzYW5zLXNlcmlmO2NvbG9yOnZhcigtLXRleHQpO21heC13aWR0aDoxMTgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjE2cHggMTZweCA1NnB4O2xpbmUtaGVpZ2h0OjEuNTtmb250LXNpemU6MTZweDt9Ci5jbHByLXdyYXAgKiwuY2xwci13cmFwICo6OmJlZm9yZSwuY2xwci13cmFwICo6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9Ci5jbHByLXdyYXAgYnV0dG9ue2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7fQouY2xwci13cmFwIGgxLC5jbHByLXdyYXAgaDIsLmNscHItd3JhcCBoMywuY2xwci13cmFwIHB7bWFyZ2luOjA7fQouY2xwci1oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjIycHg7YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTtjb2xvcjojZmZmO3BhZGRpbmc6MzRweCAzOHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEzcHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtib3gtc2hhZG93OjAgMjBweCA0MHB4IC0yMHB4IHJnYmEoNSwxNCwzMiwuNDUpO30KLmNscHItYXVyb3Jhe3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5jbHByLWF1cm9yYSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7ZmlsdGVyOmJsdXIoNDZweCk7b3BhY2l0eTouNTU7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMSl7d2lkdGg6NDIwcHg7aGVpZ2h0OjQyMHB4O2xlZnQ6LTEyMHB4O3RvcDotMjAwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMxMjQ1QTggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgyKXt3aWR0aDozODBweDtoZWlnaHQ6MzgwcHg7cmlnaHQ6LTgwcHg7dG9wOi0xNjBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzBEOTQ4OCAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDMpe3dpZHRoOjM0MHB4O2hlaWdodDozNDBweDtyaWdodDoyMiU7Ym90dG9tOi0yNDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItaGVyby1iYWRnZXN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWJhZGdlLWJyYW5ke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1iOTAwKTtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo0cHggMTFweDtib3JkZXItcmFkaXVzOjk5OXB4O2xldHRlci1zcGFjaW5nOi4wMWVtO30KLmNscHItYmFkZ2Utc2V0e2NvbG9yOnZhcigtLWIyMDApO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDt9Ci5jbHByLWhlcm8gaDF7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDQwcHgpO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07bGluZS1oZWlnaHQ6MS4xMjt9Ci5jbHByLWhlcm8tc3Vie3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiNDN0QyRTM7Zm9udC1zaXplOjE0LjVweDttYXgtd2lkdGg6NzYwcHg7fQouY2xwci1oZXJvLWNoaXBze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30KLmNscHItY2hpcHtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojRTVFRUZCO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO3BhZGRpbmc6NXB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLWN0YXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjZweDtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNXB4O3BhZGRpbmc6MTJweCAyMnB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMTJweCAyNHB4IC0xMHB4IHJnYmEoMzcsOTksMjM1LC44KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzLGJhY2tncm91bmQgLjE1czt9Ci5jbHByLWN0YTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtiYWNrZ3JvdW5kOnZhcigtLWI0MDApO30KLmNscHItdG9vbGJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtwYWRkaW5nOjEwcHggMTRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgNnB4IDE4cHggLTEycHggcmdiYSgxNSwyMyw0MiwuMjUpO3Bvc2l0aW9uOnN0aWNreTt0b3A6OHB4O3otaW5kZXg6MzA7fQouY2xwci10b29sYmFyW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItdG9vbGJhci1zcGFjZXJ7ZmxleDoxO30KLmNscHItc2NvcmUtY2hpcHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O30KLmNscHItdGJ0bntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2NvbG9yOnZhcigtLXRleHQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTNweDtwYWRkaW5nOjhweCAxNXB4O2JvcmRlci1yYWRpdXM6MTBweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJveC1zaGFkb3cgLjEyczt9Ci5jbHByLXRidG46aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNHB4IC04cHggcmdiYSgxNSwyMyw0MiwuMyk7fQouY2xwci10YnRuLWNoZWNre2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2JvcmRlci1jb2xvcjp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLXRidG4tY2hlY2s6aG92ZXJ7YmFja2dyb3VuZDojMGNhNjc4O30KLmNscHItdGJ0bltkaXNhYmxlZF17b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7Ym94LXNoYWRvdzpub25lO30KLmNscHItc2lte21hcmdpbi10b3A6MTZweDt9Ci5jbHByLXNpbVtoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLWRvdHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2luOjAgMCAxMnB4IDJweDtmbGV4LXdyYXA6d3JhcDt9Ci5jbHByLWRvdHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4O2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMTVzO30KLmNscHItZG90IGJ7ZGlzcGxheTppbmxpbmUtZmxleDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjEwMCk7Y29sb3I6dmFyKC0tYjkwMCk7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjExcHg7fQouY2xwci1kb3QuY2xwci1jdXJ7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjt9Ci5jbHByLWRvdC5jbHByLWN1ciBie2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjUpO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1kb25lIGJ7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLWNhdHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAxMHB4IDMwcHggLTE4cHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjExcHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1iYXItdGl0bGV7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWJhci10ZXh0KTtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1iYXItdGltZXJ7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tYmFyLXRleHQpO3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5jbHByLWJhci10aW1lciBie2ZvbnQtd2VpZ2h0OjgwMDt9Ci5jbHByLWNvbHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDowO30KLmNscHItcGFzc2FnZXtwYWRkaW5nOjIwcHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXAtYmcpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1xY29se3BhZGRpbmc6MThweCAyMnB4O2JhY2tncm91bmQ6dmFyKC0tcGFuZWwtcS1iZyk7bWF4LWhlaWdodDoxMjAwcHg7b3ZlcmZsb3c6YXV0bzt9Ci5jbHByLXBsYWJlbCwuY2xwci1pbnN0cntkaXNwbGF5OmZsZXg7Z2FwOjlweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTttYXJnaW4tYm90dG9tOjEycHg7fQouY2xwci1wbGFiZWw6OmJlZm9yZSwuY2xwci1pbnN0cjo6YmVmb3Jle2NvbnRlbnQ6ImkiO2ZsZXg6bm9uZTt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTppdGFsaWM7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MXB4O30KLmNscHItcGFzc2FnZSBwe2ZvbnQtc2l6ZToxNC41cHg7Y29sb3I6IzFlMmEzYTttYXJnaW4tYm90dG9tOjExcHg7bGluZS1oZWlnaHQ6MS43Mjt9Ci5jbHByLXBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTpibG9jazt9Ci5jbHByLWJsb2Nre2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXEtYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxNnB4IDE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O30KLmNscHItc3RlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7ZmxleC13cmFwOndyYXA7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7cGFkZGluZzo5cHggMDtsaW5lLWhlaWdodDoxLjc7fQouY2xwci1zdGVtICsgLmNscHItc3RlbXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLXNudW17Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO30KLmNscHItY2xvemV7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6Mi4xNTt9Ci5jbHByLWNsb3plIC5jbHByLXBhcmF7bWFyZ2luLWJvdHRvbToxMnB4O3doaXRlLXNwYWNlOnByZS13cmFwO30KLmNscHItbWF0Y2gtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMnB4O3BhZGRpbmc6MTFweCAwO2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS42O30KLmNscHItbWF0Y2gtcm93ICsgLmNscHItbWF0Y2gtcm93e2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRTZFREYxO30KLmNscHItbWF0Y2gtcm93IC5jbHByLXNudW17bWFyZ2luLXRvcDo1cHg7fQovKiBkcm9wZG93biB3aWRnZXQgKi8KLmNscHItZGR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjJweCAycHg7fQouY2xwci1kZC1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6NjRweDttYXgtd2lkdGg6MzQwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0I3QzJDRTtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjVweCA5cHg7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS10ZXh0KTtsaW5lLWhlaWdodDoxLjM1O3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEycyxib3JkZXItY29sb3IgLjEyczt9Ci5jbHByLWRkLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWRkLW9wZW4tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLXR4dHtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1kZC10eHQuY2xwci1lbXB0eXtjb2xvcjp2YXIoLS1zdWJ0bGUpO2xldHRlci1zcGFjaW5nOjNweDt9Ci5jbHByLWRkLWNhcmV0e2ZvbnQtc2l6ZTo5cHg7Y29sb3I6dmFyKC0tYjcwMCk7ZmxleDpub25lO30KLmNscHItZGQtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjYwO3RvcDpjYWxjKDEwMCUgKyA0cHgpO2xlZnQ6MDttaW4td2lkdGg6MjQwcHg7bWF4LXdpZHRoOjM2MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNDNkQwREE7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDE2cHggMzRweCAtMTJweCByZ2JhKDE1LDIzLDQyLC40KTtwYWRkaW5nOjVweDtkaXNwbGF5Om5vbmU7fQouY2xwci1kZC5jbHByLW9wZW4gLmNscHItZGQtbWVudXtkaXNwbGF5OmJsb2NrO30KLmNscHItZGQtb3B0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo5cHg7cGFkZGluZzo4cHggOXB4O2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS40O30KLmNscHItZGQtb3B0OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjUwKTt9Ci5jbHByLWRkLW9wdCAuY2xwci1yYWRpb3tmbGV4Om5vbmU7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MS41cHggc29saWQgIzlBQTdCNDttYXJnaW4tdG9wOjFweDt9Ci5jbHByLWRkLW9wdC5jbHByLXNlbCAuY2xwci1yYWRpb3tib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgNDIlLCNmZmYgNDclKTt9Ci5jbHByLWRkLmNscHItcmlnaHQgLmNscHItZGQtYnRue2JhY2tncm91bmQ6dmFyKC0tZ3JlZW41MCk7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ncmVlbik7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItZGQtYnRue2JhY2tncm91bmQ6I0ZGRjFGMjtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXJvc2UpO2NvbG9yOiNCRTEyM0M7fQouY2xwci1zb2x2ZWR7ZGlzcGxheTpub25lO21hcmdpbi1sZWZ0OjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDQ3ODU3O30KLmNscHItZGQuY2xwci13cm9uZyAuY2xwci1zb2x2ZWR7ZGlzcGxheTppbmxpbmU7fQouY2xwci1uYXZ7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTRweCAxOHB4O2JhY2tncm91bmQ6dmFyKC0tYmFyLWJnKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bntiYWNrZ3JvdW5kOnZhcigtLWI5MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7cGFkZGluZzo5cHggMjBweDtib3JkZXItcmFkaXVzOjlweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJhY2tncm91bmQgLjEyczt9Ci5jbHByLW5hdmJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI3MDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO30KLmNscHItbmF2YnRuLmNscHItZ2hvc3R7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItbmF2YnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZTt9Ci5jbHByLXJlc3VsdHN7bWFyZ2luLXRvcDoxOHB4O30KLmNscHItcmVzdWx0c1toaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXJlcy1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MjRweCAyNnB4O2JveC1zaGFkb3c6MCAxNnB4IDQwcHggLTIycHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1yZXMtdG9we2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1yZXMtc2NvcmV7Zm9udC1zaXplOjQ0cHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO2xpbmUtaGVpZ2h0OjE7fQouY2xwci1yZXMtc2NvcmUgc3Bhbntmb250LXNpemU6MjBweDtjb2xvcjp2YXIoLS1zdWJ0bGUpO30KLmNscHItcmVzLWNsYntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMHB4IDE2cHg7fQouY2xwci1yZXMtY2xiIGJ7ZGlzcGxheTpibG9jaztmb250LXNpemU6MThweDtjb2xvcjp2YXIoLS1iOTAwKTt9Ci5jbHByLXJlcy1jbGIgc21hbGx7Y29sb3I6dmFyKC0tbXV0ZWQpO30KLmNscHItcmVzLWJyZWFre2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1yZXMtcGlsbHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2JhY2tncm91bmQ6I0YxRjVGOTtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NnB4IDEzcHg7fQouY2xwci1yZXMtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4O2ZsZXgtd3JhcDp3cmFwO30KQG1lZGlhKG1heC13aWR0aDo4MjBweCl7LmNscHItY29sc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30uY2xwci1wYXNzYWdle2JvcmRlci1yaWdodDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0Om5vbmU7fS5jbHByLXFjb2x7bWF4LWhlaWdodDpub25lO319CmA7CiAgdmFyIHN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsgc3QudGV4dENvbnRlbnQgPSBDU1M7IGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3QpOwogIHZhciB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJXcmFwJyk7CiAgdmFyIHN0YXJ0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTdGFydCcpOwogIHZhciB0b29sYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJUb29sYmFyJyk7CiAgdmFyIHNpbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU2ltJyk7CiAgdmFyIGRvdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByRG90cycpOwogIHZhciBjYXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2F0Jyk7CiAgdmFyIHJlc3VsdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmVzdWx0cycpOwogIHZhciBzY29yZUNoaXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNjb3JlQ2hpcCcpOwogIHZhciBjaGVja0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2hlY2snKTsKICB2YXIgcmVzZXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc2V0Jyk7CgogIHZhciBRID0gW107CiAgdmFyIGN1clBhcnQgPSAwOwogIHZhciBjaGVja2VkID0gZmFsc2U7CgogIGZ1bmN0aW9uIGVsKHRhZywgY2xzLCBodG1sKXsgdmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpOyBpZihjbHMpZS5jbGFzc05hbWU9Y2xzOyBpZihodG1sIT1udWxsKWUuaW5uZXJIVE1MPWh0bWw7IHJldHVybiBlOyB9CgogIC8qIEJ1aWxkIHRoZSBwZXJzaXN0ZW50IHF1ZXN0aW9uIGxpc3QgT05DRTsgYXR0YWNoIC5fcSB0byBlYWNoIGl0ZW0vYmxhbmsgc28KICAgICByZS1yZW5kZXJpbmcgYSBwYXJ0IHJldXNlcyB0aGUgc2FtZSBzdGF0ZSBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LiAqLwogIGZ1bmN0aW9uIGluaXRRdWVzdGlvbnMoKXsKICAgIFEgPSBbXTsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCl7CiAgICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxrKXsKICAgICAgICBpZihibGsudHlwZT09PSdjbG96ZScpewogICAgICAgICAgYmxrLmJvZHkuZm9yRWFjaChmdW5jdGlvbih0b2speyBpZih0eXBlb2YgdG9rPT09J29iamVjdCcpeyB0b2suX3E9e3NlbDpudWxsLGtleTp0b2sua2V5LG46dG9rLmIscGFydDpwYXJ0LmlkfTsgUS5wdXNoKHRvay5fcSk7IH0gfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJsay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsgaXQuX3E9e3NlbDpudWxsLGtleTppdC5rZXksbjppdC5uLHBhcnQ6cGFydC5pZH07IFEucHVzaChpdC5fcSk7IH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIG1ha2VEcm9wZG93bihvcHRpb25zLCBxcmVmKXsKICAgIHZhciBkZCA9IGVsKCdzcGFuJywnY2xwci1kZCcpOwogICAgdmFyIGJ0biA9IGVsKCdidXR0b24nLCdjbHByLWRkLWJ0bicpOwogICAgdmFyIHR4dCA9IGVsKCdzcGFuJywnY2xwci1kZC10eHQgY2xwci1lbXB0eScsJyAgICcpOwogICAgdmFyIGNhcmV0ID0gZWwoJ3NwYW4nLCdjbHByLWRkLWNhcmV0JywnXHUyNWJlJyk7CiAgICBidG4uYXBwZW5kQ2hpbGQodHh0KTsgYnRuLmFwcGVuZENoaWxkKGNhcmV0KTsKICAgIHZhciBzb2x2ZWQgPSBlbCgnc3BhbicsJ2NscHItc29sdmVkJywnJyk7CiAgICB2YXIgbWVudSA9IGVsKCdzcGFuJywnY2xwci1kZC1tZW51Jyk7CiAgICBvcHRpb25zLmZvckVhY2goZnVuY3Rpb24ob3B0LCBpKXsKICAgICAgdmFyIG8gPSBlbCgnc3BhbicsJ2NscHItZGQtb3B0Jyk7CiAgICAgIG8uYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXJhZGlvJykpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLG9wdCkpOwogICAgICBvLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgICBxcmVmLnNlbCA9IGkrMTsKICAgICAgICB0eHQudGV4dENvbnRlbnQgPSBvcHQ7IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgICBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLXNlbCcpO30pOwogICAgICAgIG8uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgICAgICBjbG9zZUFsbCgpOwogICAgICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgICB9KTsKICAgICAgbWVudS5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgaWYoY2hlY2tlZCkgcmV0dXJuOwogICAgICB2YXIgd2FzT3BlbiA9IGRkLmNsYXNzTGlzdC5jb250YWlucygnY2xwci1vcGVuJyk7CiAgICAgIGNsb3NlQWxsKCk7CiAgICAgIGlmKCF3YXNPcGVuKSBkZC5jbGFzc0xpc3QuYWRkKCdjbHByLW9wZW4nKTsKICAgIH0pOwogICAgZGQuYXBwZW5kQ2hpbGQoYnRuKTsgZGQuYXBwZW5kQ2hpbGQoc29sdmVkKTsgZGQuYXBwZW5kQ2hpbGQobWVudSk7CiAgICBxcmVmLmRkRWwgPSBkZDsgcXJlZi50eHRFbCA9IHR4dDsgcXJlZi5zb2x2ZWRFbCA9IHNvbHZlZDsgcXJlZi5vcHRpb25zID0gb3B0aW9uczsKICAgIGlmKHFyZWYuc2VsIT1udWxsKXsKICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0aW9uc1txcmVmLnNlbC0xXTsgdHh0LmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOwogICAgICB2YXIgc28gPSBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpW3FyZWYuc2VsLTFdOyBpZihzbykgc28uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgIH0KICAgIHJldHVybiBkZDsKICB9CiAgZnVuY3Rpb24gY2xvc2VBbGwoKXsgd3JhcC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC5jbHByLW9wZW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1vcGVuJyk7fSk7IH0KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlQWxsKTsKCiAgZnVuY3Rpb24gYnVpbGRQYXJ0KHBpKXsKICAgIHZhciBwYXJ0ID0gUkRBVEEucGFydHNbcGldOwogICAgY2F0RWwuaW5uZXJIVE1MPScnOwogICAgdmFyIGJhciA9IGVsKCdkaXYnLCdjbHByLWJhcicpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aXRsZScsICdQcmFjdGljZSBUZXN0IDIgXHUyMDEzICcrcGFydC5uYW1lKSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItYmFyLXRpbWVyJywnU3VnZ2VzdGVkIHRpbWU6IDxiPicrcGFydC50aW1lKyc8L2I+JykpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQoYmFyKTsKICAgIHZhciBjb2xzID0gZWwoJ2RpdicsJ2NscHItY29scycpOwogICAgdmFyIGxlZnQgPSBlbCgnZGl2JywnY2xwci1wYXNzYWdlJyk7CiAgICBsZWZ0LmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLXBsYWJlbCcsIHBhcnQucGFzc2FnZS5sYWJlbCkpOwogICAgaWYocGFydC5wYXNzYWdlLnR5cGU9PT0naW1hZ2UnKXsKICAgICAgdmFyIGltZyA9IGVsKCdpbWcnLCdjbHByLXBpbWcnKTsgaW1nLnNyYyA9IHBhcnQucGFzc2FnZS5zcmM7IGltZy5hbHQgPSBwYXJ0LnBhc3NhZ2UuYWx0fHwnJzsgbGVmdC5hcHBlbmRDaGlsZChpbWcpOwogICAgfSBlbHNlIHsKICAgICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JyxudWxsLCBwYXJ0LnBhc3NhZ2UuaHRtbCkpOwogICAgfQogICAgdmFyIHJpZ2h0ID0gZWwoJ2RpdicsJ2NscHItcWNvbCcpOwogICAgcGFydC5ibG9ja3MuZm9yRWFjaChmdW5jdGlvbihibG9jayl7IHJpZ2h0LmFwcGVuZENoaWxkKGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpKTsgfSk7CiAgICBjb2xzLmFwcGVuZENoaWxkKGxlZnQpOyBjb2xzLmFwcGVuZENoaWxkKHJpZ2h0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGNvbHMpOwogICAgdmFyIG5hdiA9IGVsKCdkaXYnLCdjbHByLW5hdicpOwogICAgdmFyIHByZXYgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4gY2xwci1naG9zdCcsJ1x1MjE5MCBQcmV2aW91cyBwYXJ0Jyk7CiAgICB2YXIgbmV4dCA9IGVsKCdidXR0b24nLCdjbHByLW5hdmJ0bicsJ05leHQgcGFydCBcdTIxOTInKTsKICAgIHByZXYuZGlzYWJsZWQgPSAocGk9PT0wKTsgbmV4dC5kaXNhYmxlZCA9IChwaT09PVJEQVRBLnBhcnRzLmxlbmd0aC0xKTsKICAgIHByZXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBpZihwaT4wKSBnbyhwaS0xKTsgfSk7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk8UkRBVEEucGFydHMubGVuZ3RoLTEpIGdvKHBpKzEpOyB9KTsKICAgIG5hdi5hcHBlbmRDaGlsZChwcmV2KTsgbmF2LmFwcGVuZENoaWxkKG5leHQpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQobmF2KTsKICAgIGlmKGNoZWNrZWQpIGFwcGx5TWFya3MoKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpewogICAgdmFyIHdyYXBCID0gZWwoJ2RpdicsJ2NscHItYmxvY2snKTsKICAgIHdyYXBCLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWluc3RyJywgYmxvY2suaW5zdHIpKTsKICAgIGlmKGJsb2NrLnR5cGU9PT0nc3RlbWxpc3QnKXsKICAgICAgYmxvY2suaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7CiAgICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCdjbHByLXN0ZW0nKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXNudW0nLCBpdC5uKycuJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwgaXQucHJlKycgJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24oaXQub3B0aW9ucywgaXQuX3EpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J2Nsb3plJyl7CiAgICAgIHZhciBib3ggPSBlbCgnZGl2JywnY2xwci1jbG96ZScpOwogICAgICBibG9jay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsKICAgICAgICBpZih0eXBlb2YgdG9rPT09J3N0cmluZycpewogICAgICAgICAgdmFyIHNlZ3MgPSB0b2suc3BsaXQoJ1xuXG4nKTsKICAgICAgICAgIHNlZ3MuZm9yRWFjaChmdW5jdGlvbihzZWcsIGlkeCl7CiAgICAgICAgICAgIGlmKGlkeD4wKXsgYm94LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCc8YnI+PGJyPicpKTsgfQogICAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc2VnKSk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgYm94LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bih0b2sub3B0aW9ucywgdG9rLl9xKSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQoYm94KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J21hdGNoJyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1tYXRjaC1yb3cnKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGJsb2NrLmxldHRlcnMsIGl0Ll9xKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnRleHQpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0KICAgIHJldHVybiB3cmFwQjsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkRG90cygpewogICAgZG90c0VsLmlubmVySFRNTD0nJzsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocCwgaSl7CiAgICAgIHZhciBkID0gZWwoJ2J1dHRvbicsJ2NscHItZG90JysoaT09PWN1clBhcnQ\/JyBjbHByLWN1cic6JycpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnYicsbnVsbCwoaSsxKSkpOwogICAgICBkLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLFsnQ29ycmVzcG9uZGVuY2UnLCdBcHBseSBhIERpYWdyYW0nLCdJbmZvcm1hdGlvbicsJ1ZpZXdwb2ludHMnXVtpXSkpOwogICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oaSk7IH0pOwogICAgICBkb3RzRWwuYXBwZW5kQ2hpbGQoZCk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gZ28ocGkpeyBjdXJQYXJ0PXBpOyBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KHBpKTsgY2F0RWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsgfQoKICBmdW5jdGlvbiB1cGRhdGVTY29yZUNoaXAoKXsKICAgIHZhciBhbnMgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWwhPW51bGw7fSkubGVuZ3RoOwogICAgc2NvcmVDaGlwLnRleHRDb250ZW50ID0gY2hlY2tlZCA\/IChRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGgrJyAvICcrUS5sZW5ndGgrJyBjb3JyZWN0JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoYW5zKycgLyAnK1EubGVuZ3RoKycgYW5zd2VyZWQnKTsKICB9CgogIGZ1bmN0aW9uIGFwcGx5TWFya3MoKXsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgICAgaWYoIXEuZGRFbCkgcmV0dXJuOwogICAgICBxLmRkRWwuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1yaWdodCcsJ2NscHItd3JvbmcnKTsKICAgICAgaWYocS5zZWw9PT1xLmtleSl7IHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXJpZ2h0Jyk7IH0KICAgICAgZWxzZSB7CiAgICAgICAgcS5kZEVsLmNsYXNzTGlzdC5hZGQoJ2NscHItd3JvbmcnKTsKICAgICAgICBpZihxLnNvbHZlZEVsKSBxLnNvbHZlZEVsLnRleHRDb250ZW50ID0gJ1x1MjcxMyAnK3Eub3B0aW9uc1txLmtleS0xXTsKICAgICAgICBpZihxLnNlbD09bnVsbCAmJiBxLnR4dEVsKXsgcS50eHRFbC50ZXh0Q29udGVudD0nKG5vIGFuc3dlciknOyBxLnR4dEVsLmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOyB9CiAgICAgIH0KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gZG9DaGVjaygpewogICAgY2hlY2tlZCA9IHRydWU7CiAgICBhcHBseU1hcmtzKCk7CiAgICB2YXIgY29ycmVjdCA9IFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbD09PXEua2V5O30pLmxlbmd0aDsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgY2hlY2tCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgdmFyIGJ5UGFydCA9IHt9OwogICAgUS5mb3JFYWNoKGZ1bmN0aW9uKHEpeyBieVBhcnRbcS5wYXJ0XT1ieVBhcnRbcS5wYXJ0XXx8e2M6MCx0OjB9OyBieVBhcnRbcS5wYXJ0XS50Kys7IGlmKHEuc2VsPT09cS5rZXkpYnlQYXJ0W3EucGFydF0uYysrOyB9KTsKICAgIHZhciBlc3QgPSBjbGJFc3RpbWF0ZVIoY29ycmVjdCk7CiAgICB2YXIgcGlsbHMgPSBSREFUQS5wYXJ0cy5tYXAoZnVuY3Rpb24ocCl7IHZhciBiPWJ5UGFydFtwLmlkXXx8e2M6MCx0OjB9OyByZXR1cm4gJzxzcGFuIGNsYXNzPSJjbHByLXJlcy1waWxsIj5QYXJ0ICcrcC5pZCsnOiAnK2IuYysnLycrYi50Kyc8L3NwYW4+JzsgfSkuam9pbignJyk7CiAgICByZXN1bHRzRWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImNscHItcmVzLWNhcmQiPicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtdG9wIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXNjb3JlIj4nK2NvcnJlY3QrJzxzcGFuPi8nK1EubGVuZ3RoKyc8L3NwYW4+PC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jbGIiPjxiPicrZXN0LmxldmVsKyc8L2I+PHNtYWxsPicrZXN0Lm5vdGUrJyAmbWlkZG90OyBlc3RpbWF0ZWQgUmVhZGluZyBiYW5kPC9zbWFsbD48L2Rpdj4nCiAgICAgICsgJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYnJlYWsiPicrcGlsbHMrJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iY2xwci1uYXZidG4gY2xwci1naG9zdCIgaWQ9ImNscHJSZXZpZXciPlJldmlldyBhbnN3ZXJzIGluIGVhY2ggcGFydDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIiBpZD0iY2xwclJldHJ5Ij5UcnkgYWdhaW48L2J1dHRvbj48L2Rpdj4nCiAgICAgICsgJzxwIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Zm9udC1zaXplOjEyLjVweDtjb2xvcjp2YXIoLS1tdXRlZCkiPkVzdGltYXRlZCBiYW5kIGlzIGEgc3R1ZHkgZ3VpZGUgb25seSwgbm90IGFuIG9mZmljaWFsIENFTFBJUCBzY29yZS4gQ29ycmVjdCBhbnN3ZXJzIGFyZSBzaG93biB3aXRoIGEgZ3JlZW4gY2hlY2sgb24gZWFjaCBkcm9wLWRvd24geW91IGFuc3dlcmVkIGluY29ycmVjdGx5LjwvcD4nCiAgICAgICsgJzwvZGl2Pic7CiAgICByZXN1bHRzRWwuaGlkZGVuID0gZmFsc2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldHJ5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldmlldycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oMCk7IH0pOwogICAgcmVzdWx0c0VsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgfQoKICBmdW5jdGlvbiByZXNldEFsbCgpewogICAgY2hlY2tlZD1mYWxzZTsgaW5pdFF1ZXN0aW9ucygpOyBjdXJQYXJ0PTA7CiAgICBjaGVja0J0bi5kaXNhYmxlZD1mYWxzZTsKICAgIHJlc3VsdHNFbC5oaWRkZW49dHJ1ZTsgcmVzdWx0c0VsLmlubmVySFRNTD0nJzsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIHNpbS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgc3RhcnRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogICAgd3JhcC5xdWVyeVNlbGVjdG9yKCcuY2xwci1oZXJvJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICB0b29sYmFyLmhpZGRlbj1mYWxzZTsgc2ltLmhpZGRlbj1mYWxzZTsKICAgIGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOyBjaGVja2VkPWZhbHNlOwogICAgYnVpbGREb3RzKCk7IGJ1aWxkUGFydCgwKTsgdXBkYXRlU2NvcmVDaGlwKCk7CiAgfSk7CiAgY2hlY2tCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBkb0NoZWNrKTsKICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0QWxsKTsKfSkoKTs=\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 11 Practice Test 2: 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-6455","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6455","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=6455"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6455\/revisions"}],"predecessor-version":[{"id":6545,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6455\/revisions\/6545"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}