{"id":122167,"date":"2026-03-25T02:00:36","date_gmt":"2026-03-25T02:00:36","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=122167"},"modified":"2026-03-25T02:00:36","modified_gmt":"2026-03-25T02:00:36","slug":"wordpress-6-9-2-retrospective","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/03\/25\/wordpress-6-9-2-retrospective\/","title":{"rendered":"WordPress 6.9.2 retrospective"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The WordPress 6.9.2 release on March 10th wasn\u2019t the smoothest, so some members of the Security Team did an internal retrospective to identify how the project can continue to improve release processes, with the aim of ensuring that users continue to have trust in minor releases. Here\u2019s an overview of what went well, what didn\u2019t go so well, and all the action points as a result.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6.9.2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Security Team decided on a plan to fully ship 6.9.2 prior to starting the backports that are provided as a courtesy to older branches. Normally the commits to <span tabindex='0' class='glossary-item-container'>trunk<span class='glossary-item-hidden-content'><span class='glossary-item-header'>trunk<\/span> <span class='glossary-item-description'>A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running \"trunk\", then you are on the latest revision.<\/span><\/span><\/span>, the currently supported <span tabindex='0' class='glossary-item-container'>branch<span class='glossary-item-hidden-content'><span class='glossary-item-header'>branch<\/span> <span class='glossary-item-description'>A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a \"branch\", such as \"the 4.0 branch\".<\/span><\/span><\/span>, and relevant <span tabindex='0' class='glossary-item-container'>backport<span class='glossary-item-hidden-content'><span class='glossary-item-header'>backport<\/span> <span class='glossary-item-description'>A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.<\/span><\/span><\/span> branches are all completed before the release process starts, but this increases the time to release the supported branch and greatly increases the time pressure on the team.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The team agreed that it was a good idea to handle trunk and 6.9 prior to committing the backports, that the approach worked well, and that it facilitated shipping 6.9.2 as fast as possible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6.9.3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Shortly after the release, <a href=\"https:\/\/wordpress.org\/support\/topic\/no-pages-displaying-after-wp-updates-to-6-9-2\/\">an issue in 6.9.2 was reported on the support forums<\/a> that affected classic themes using an unusual approach to template loading. The team paused the backport work to investigate, and decided that it warranted a fast-follow 6.9.3 release out of an abundance of caution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fix was shipped in 6.9.3, around eight hours after 6.9.2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7.0 <span tabindex='0' class='glossary-item-container'>beta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Beta<\/span> <span class='glossary-item-description'>A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.<\/span><\/span><\/span> 4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s uncommon for a security release of WordPress to ship during the beta period of the next <span tabindex='0' class='glossary-item-container'>major release<span class='glossary-item-hidden-content'><span class='glossary-item-header'>major release<\/span> <span class='glossary-item-description'>A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.<\/span><\/span><\/span>. This is not intentional, the situation simply doesn\u2019t arise often. In the twenty year history of WordPress it appears to have happened three times previously (3.9.2, 4.0.1, and 6.3.2).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Shortly after the release of 6.9.2, several community members asked if a new beta of WordPress 7.0 would be released containing the security fixes. This was not originally planned but of course makes sense, as the project should encourage as many people as possible to test beta releases and not leave them on a known insecure version until the next scheduled beta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As a result, WordPress 7.0 beta 4 was released at the same time as 6.9.3 and included both the security fixes from 6.9.2 and the template loading fix from 6.9.3.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6.9.4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Around twenty hours after 6.9.2 was released, the Security Team received a report that some of the fixes listed in the release announcement for 6.9.2 were missing from the package. The team quickly determined that three of the ten commits that were made to trunk did not get successfully merged into the 6.9 branch and were missing from the package as a result.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The merge commits were missed due to human error, but the problem should have been easily caught by the release process. There is no step in the <span tabindex='0' class='glossary-item-container'>minor release<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Minor Release<\/span> <span class='glossary-item-description'>A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.<\/span><\/span><\/span> process to independently double check that all commits were successfully merged into the active branch. Sounds obvious in hindsight, but it\u2019s a checklist oversight that\u2019s never been spotted.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Backports<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Officially only the latest version of WordPress is supported. The\u00a0Security Team\u00a0historically has a practice of backporting security fixes, as necessary, as a courtesy to sites on older versions in the expectation the sites will be automatically updated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Backporting the fixes from 6.9.2\/6.9.3 to 22 older branches proved to be very time consuming. While several of the branches were ready ahead of time, several were still being worked on close to release.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Backports back to 6.4 were completed by end of day on Tuesday March 10th.<\/li>\n\n\n\n<li>Backports back to 5.3 were completed by end of day on Wednesday March 11th, mainly due to time constraints from contributors.<\/li>\n\n\n\n<li>Remaining backports were blocked by a <span tabindex='0' class='glossary-item-container'>bug<span class='glossary-item-hidden-content'><span class='glossary-item-header'>bug<\/span> <span class='glossary-item-description'>A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.<\/span><\/span><\/span> with the <span tabindex='0' class='glossary-item-container'>wordpress.org<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WordPress.org<\/span> <span class='glossary-item-description'>The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization.  <a href=\"https:\/\/wordpress.org\/\">https:\/\/wordpress.org\/<\/a><\/span><\/span><\/span> svn server pre-commit hook that prevented pushing to the 5.2 branch and earlier, and issues with branches not syncing to the build server. The wordpress.org systems team members applied several fixes, and backports back to 4.7 were released by end of day on Friday March 13th.<\/li>\n\n\n\n<li>The 6.0 branch (which will be version 6.0.12) remains <em>unreleased<\/em> due to <a href=\"https:\/\/make.wordpress.org\/systems\/2026\/03\/09\/ref-https-core-trac-wordpress-org-ticket-64083comment61-a-commit-was\/\">an unresolved issue with the build<\/a>. At the time of writing this branch remains unprotected.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Backporting security fixes to a large number of branches (22 at the time of writing) continues to be a source of contention between the security team and project leadership. While the effort required from the security team to backport fixes to a branch is generally proportional to the age of the branch, the bulk of the work is actually taken up by the human processes that are needed to manage such a large number of branch releases. The team are in the planning stages of some work to increase automation and streamline the backporting processes so time from human contributors can be better spent elsewhere.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Action points<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As a result of the issues with 6.9.2, its fast-follow releases, 7.0 beta 4, and backporting, the security team and <span tabindex='0' class='glossary-item-container'>core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> team have some action points that will be addressed in the coming days and weeks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add <span tabindex='0' class='glossary-item-container'>unit test<span class='glossary-item-hidden-content'><span class='glossary-item-header'>unit test<\/span> <span class='glossary-item-description'>Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see <a href=\"#regression\">regression<\/a>.<\/span><\/span><\/span> coverage for handling stringable objects in the <code>template_include<\/code> <span tabindex='0' class='glossary-item-container'>filter<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Filter<\/span> <span class='glossary-item-description'>Filters are one of the two types of Hooks <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Hooks\">https:\/\/codex.wordpress.org\/Plugin_API\/Hooks<\/a>. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.<\/span><\/span><\/span> that was addressed in 6.9.3. While this is not strictly supported, the otherwise full front end breakage that can occur means we\u2019re essentially locked in to supporting it now.<\/li>\n\n\n\n<li>Update minor release checklist page to:\n<ul class=\"wp-block-list\">\n<li>Add info about double verification of merge commits<\/li>\n\n\n\n<li>Update the TTL adjustment to be a requirement instead of a nice to have<\/li>\n\n\n\n<li>Remove outdated noise from the checklist, including codex changes<\/li>\n\n\n\n<li>As a general rule, there should be no reason to skip a step unless it\u2019s clearly documented why that might happen<\/li>\n\n\n\n<li>Add planning info about releasing a minor during a beta or <span tabindex='0' class='glossary-item-container'>RC<span class='glossary-item-hidden-content'><span class='glossary-item-header'>release candidate<\/span> <span class='glossary-item-description'>One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see <a href=\"#alpha-beta\">alpha (beta)<\/a>.<\/span><\/span><\/span> phase<\/li>\n\n\n\n<li>Before bumping versions and performing a tagging commit, the built asset on the Test Build Processes workflow should be used to confirm things work as expected.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Backport related Build\/Test Tool changes to older branches.\n<ul class=\"wp-block-list\">\n<li>Ensure PHPUnit reports notices and warnings as exceptions.<\/li>\n\n\n\n<li>Ensure all local environment scripts have <code>catch()<\/code> mechanisms in place.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Create ways to make it easier to test built assets on the Test Build Processes workflow.\n<ul class=\"wp-block-list\">\n<li>Playground supports testing this asset from a pull request but not an individual commit.<\/li>\n\n\n\n<li>A script could be created to download the built asset and extract the zip file into the <code>build<\/code> directory locally for testing.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Longer term, Matt Mullenweg has asked what AI-assisted tooling can be used to review changes going into releases in order to assess risk of breakage, generally assist with review, and improve quality control. This is a wider concern not specific to security releases. Hopefully we\u2019ll hear more about that in due course.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Thanks to <a href=\"https:\/\/profiles.wordpress.org\/peterwilsoncc\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>peterwilsoncc<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/dmsnell\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>dmsnell<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/audrasjb\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>audrasjb<\/a>, and <a href=\"https:\/\/profiles.wordpress.org\/sergeybiryukov\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>sergeybiryukov<\/a> for reviewing this post prior to publishing.<\/em><\/p>\n<nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F03%2F25%2Fwordpress-6-9-2-retrospective%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>The WordPress 6.9.2 release on March 10th wasn\u2019t the smoothest, so some members of the Security Team did an internal retrospective to identify how the project can continue to improve release processes, with the aim of ensuring that users continue to have trust in minor releases. Here\u2019s an overview of what went well, what didn\u2019t [&hellip;]<\/p>\n","protected":false},"author":42547,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAC2BKn0nfQfj\/6hmxyn9bWrCen0nfQfIM\/+oZscBKf1tasJqfSd9B\/P\/qGbHAf05JXiDgCP\/qGbHPTkleIOAY\/+oZsctOSV4g6P\/qGbHLTkleIOj\/6hmxz05JXiDgHn9bWrCQKP\/qGbHKf1tasJz\/6hmxwA5\/W1qwkAj\/6hmxyn9bWrCc\/+oZscAef1tasJBY\/+oZsc5\/W1qwkDz\/6hmxwA5\/W1qwkYj\/6hmxyn9bWrCc\/+oZscAKf1tasJj\/6hmxyn9bWrCY\/+oZscp\/W1qwmP\/qGbHKf1tasJj\/6hmxyn9bWrCY\/+oZscp\/W1qwmP\/qGbHKf1tasJj\/6hmxyn9bWrCc\/+oZscAef1tasJAM\/+oZscBef1tasJAM\/+oZscXqf1tasJz\/6hmxwLp\/W1qwnP\/qGbHFyn9bWrCc\/+oZsc2wOn9bWrCc\/+oZsc8AH05JXiDgTn9bWrCQK05JXiDs\/+oZscA\/TkleIOAI\/+oZscp\/W1qwnP\/qGbHDn05JXiDsICp\/W1qwn05JXiDgqn9bWrCfTkleIOAuf1tasJwQT05JXiDgrn9bWrCTz05JXiDlCn9bWrCfTkleIOP6f1tasJtOSV4g6n9bWrCbTkleIOp\/W1qwm05JXiDqf1tasJ9OSV4g4Bp\/W1qwm05JXiDqf1tasJtOSV4g6n9bWrCfTkleIOAaf1tasJ9OSV4g4Hp\/W1qwn05JXiDhmn9bWrCbTkleIOp\/W1qwm05JXiDqf1tasJ9OSV4g4\/jhCg0APe0AMBAQgASAoIMAQIAwBEBQAQBEQIoAH8AqIDZj4AlGwizir0RrIEpssD3loOOJhxwuUD0gOYB\/oGAhSWCJJxlAjQgQEArIUB1IQBABiOhAEeoAbQigGqigEYwosBrocBHAcAONwFngXcBBwMmAHOAtQBHgKeBdwEHAyYAc4CgBLwiwEAmJYByJYBAQEIAEiYaM5oCiICPAMAwAG4AQgMAgoEAl4qxgHmAaIDFv4BrgIG0AKoAgTuAZYCAgQCEAMCBgIOAg44DCQGEqoDwgQGErYDShjqBlq4AQy6BCzqBMYDvgHmCJwPAQEIAEgKSAQCDFQuAQEIAEgKBgISACwCEgQIBgIACgIGEtIBggIDAAwCInQDADA8lAUIJAQamAEOACrqAhqSA\/oBugFEjAMkLAwECAwCDjTCAQ6+AgT6FooXAQEIAEhQWIACGAIEOOAHvgkE1gmeBRisA+oDBDjcBgyACgL8AYQCBgIECgIAHEIMAhgEggEIAwIEDB4OAgUAEAoCMAIKEBQDAAQkAhACUvADpAUMFAwCwgaABs4FFD7YAoQHBtQoqCgBAQgASAoGhAKeARoI1ASyCQEBCABICiQCIAIIAgwUbAI4FBICCBwMEAiSARYANoABBCAYWB7yBp4HEAJU6AE4BogClAH2C5IMAQEIAEgCBAIABg4BAQhIChYGRgwmAhYCGAIK4g00IKAJiALqAYIDAQEISAoWBCAGFgoCDggEBkrgAroC+ASGBIYB4ASwAYYDAQEISAoqAigEPAoGEAoEPNQDAogCgASIAQIQAhAaAsYJoAkBAQhICh4aAgwC1iwQ8gGmLgLoLrQuJM4vGoAvHPwFrAE0igUYCAoaEsABugPyCj6gASKECQKAAQ4EFpYBDNYenh8DAByWAfQBvgHoHaoCkB0DAAggAgZoKHT4CfAWlAPaY65uTrQVAOQVFIYJQgKYDcoMyEioAbILogeWFOgFCJAp9hgEPL4k3BicGO4kmAT6A4gl1CjOLUgEArBY6k\/OCaxZAQEIAEgCBAIABg4BAQhICo4DAp4CAooBAo4HAgoEAwAargEgDgKIAwL6AyBgIJgDAr4BygWeBQAc+AUAmAYA+BeAGAEBCEgKSpwBigK0AZwCkAKuA5QCjgW6ATo+tgEBAQgCSgCEAoICtAIBAQgCSgC+AvQkCrQagAKiIwEBCABIDgIBAQgCSgCCAgEBCAJK+iC6ArYgAQEIAEgOAgEBCAJKAL4CAQEIAkr4SKZfAQEIAEgOAgEBCAJKALQBAQEIAkoAnAIBAQgCSgCQAgEBCAJKAK4DAQEIAkoAlAIBAQgCSuDeAa7jAQEBCABICpQBAgQMTA4gChoCIAqSAwLsigKiBAaGxQGWCOjEAbzRAg4GMgbG9wIClJABiMACAQEIAEgKKCIAEDIMAgQcBAoIAgQUBhQSCgIUAgTUBJgEHDqmARLyAjqoAiDaBRLKAgy6B\/IB9Aj8zwMBC1SsAQZ8ggEBAQgASAoMBAIGAhYLAAIKCAImAgQQBgMAEAKEAQgGDggGAhIIAgwDAAgOBgwK7gEIugE0AwAkBQACCBzeArABLh5CDgLQAaIBBgLEAawBAg4GmgECDgwcCMYNoA0BAQgASMALBqACEL0BAEiqBmL4B3jIAbwBgAnACYAJjgHMCJgICMgIAgjCBAy2C+wTkhYKAgqYAQIQApYCDAYCBAIQGAIGAgQeAwAKAwQEAwAIAwsEAwwECAMDBAIGAxoEAwEFAAMJBAMABAMABAMDBgMEBAMFFAKKAQMAHtIijgaUCY4B1giiCswESAQCSNgOAQEIAEgCCA4CtgECEgQyIBgKkgECCOYDpAkC1AmMCgIGFALmCogKAgYyJBakAgYSCIQBKPoPIJIQBuQOng4GgALiEAgA4AWgFgAQ4AWsAaAEECwILAgCCAYcBgQAFggAIM4XnhcADuIX3AScHAEBCABICkgEAgwKAmAoAQEIAEgKCACYAgQKdqABAhoEAwCSAQCWAfACBAMAugXSAx60AogBUhKGA0QEjgMibi6eBQLeApwCwAaCBwC2BBTMBX4AOpAFjgJICJQDCFoargNqKpQDTg6YA1YWtgNuLoID2hGWFVgYggOYA+Yh1BOoNSIMKA4CCPAB5jW0Od4CiANEBKIEAOIEtgYqlgICQtROvlIBAQgASAoIKCYK7AH+Bq4JSgq6AwIaiAHcAoYD3g0Aog0ARNJYpFjOCKAI2gfAAqAJAQEIAEgKSAQCDFQwAQEIAEgKDQAEDDYMJA4WCQAGAgaAARgcEgUANAQSCtwBqAEeFgMABwAoaCwo7gi0BhiAAwzWAqoCAgDQAfAEmgbcBN4HjgwBAQgASAoSAjQOGgIKApgBCDIYBQACBALwA6gEFiwaGAIuBhAGEgwAHqIBAiIKzAP6CIgNAQEIAEgKDgUALAJargECWDgGEhSCAQKQAQLGBowGAQEIAEgKSAQCDAgC0poBnJoBAQEIAkJI1pgBeAYIhgISvBQIyA2mlwECDgrWRqA0ugemCgEBCABICtiYAaKYAR4EoAECLBAHAAIuAwE8EAoCmAEG+gEQpAEGIKgEMLIBGwB0qAHeENiNARKYAgyiAQQKAwMGAwAIBAMJBAMKiq0ByK0BBggDAQUACAMBBAIEAwIEAwqwvgEOAg7MvwG2wAECDMLBAZDBAczBAQMBgMkB\/MgBBAMJlNEBFhD20QEDAAQDAAQDAwYEAwIEAwUUAooBAwAerwamtwHUtgEEFNQBvAIAPqJs8i+YAaazAg446vMCAIYEAQGiC6JnsgwA7oUBrIUBANSEAZSEAdoGigegBgAaGMKLAa6HARwHADruBRA0DhwMmAGaAsSKARagAw40AhoKHgioBZyoAfQ\/4GcBBYACAMICAQC6AQEAJAEAggYGEgDmAlq4AQw8ALQD+gaWB46aAQDelwEBBVaqAQEClAEDADCACcACGgCYAboBvgQOAQCKhAHIgQHiBAEALJ4FGFgaBDjcBgwBAKIKAIYG8AMBAxCABs4FFD7YAgEA3iAAvjICkASaAtQGAQG0BTgc3jq8PvILSp4BqAuaA94EhgQA2gOqBQKIAuIkEPIBAQCiLuIuAAoaZACMKqQB5AEBA4ABPqAB5BEBA6Af4B+8Iyh0+AnwFrQC+mKqbYQBTgC0FeQViAkSQpgN1g2OAchIsAuqAagHngyKAgiQKfYYBDwAogycGO4kEA4AkgboLap3wBYgtgQC4AECAMwDAJ4F3gUClgbWBpoGoAG6KvJEqIsB2oUCogQGhsUBlgjEMZCaAmK0BDoBANICEsoCDADozAMIpgGwAS4AbgEACgEB5AUGoAIQvAGWAR4A9AEESIgHBgC0AQIA\/gYBABgC6gHQAgyUA8wEDpID1AGUC\/gTqgIBABIBAwSICgIG0AoBBjIgAQC0AZ4OBtgQtgEIuBDYFgCgFuAWkBGsAQEKjgfOBwCsBwDuFgCeF94XCroYAQGGBdoBBAMAAIQDtgIAiAEAhgMBALADAQCeBcAGAIIHAQDCAQKUB8oBAI4CAQCcAwCuAwCUAwCYAwC2A9gOAJYVzBveEgEFnhKSItIigiQAwiSKJwCiBMIBAQKWBgDWAgCWApgHAQLYBwACoA3gDaQNRtJYAJZQALYOrALaB7QGGAEANgEArALYBADoAYAIhghenAQBAdx31Bp4BgiGAhK8FAiiRKA06I8BmqcBEKQBBqoHzpwBEpgCDKIBBAoDAwYDAAgEAwkEAwoAAgYIAwEFAAgDAQQCBAMCBAMKAQICAQECAAQDAQAFAAMJAQEEAwAEAwAEAwMGBAMCBAMFFAKKAQMAHtcQKADHACgCJwEoACcABACEBcQBhALEAIQBxACEAMQFqALEAoQAIQDEAcEAxADBAMQCwQvEAMEAxARBAMEGxADBAEQAxAaBAcEAxwAoAicBKAAnAMQABACBAIQBgQCEAIEAwQHEAMEAxADBAMQAwQHEAIQAxADBAMQBwQDEAcEAxACEAYEAhACBAIQAgQCEAIEBhACBAIQAgQCEAIEAhACBAYQAgQDBAcQAwQCBAIQAwQDEAsEAxAPHACEAKAAhACcBIQAnAAEAqAEoAIQAxwAoAicBKAAnAAEAhACBAIQAwQDEAMEAxADBAMQAwQDEAEQAxADBAMQAwQDEAIQDgQCEAcEDhACBAIQAgQTBAIEAxAHBAoEAhAKBAIQAgQKEAIEAwQHEAccAIQAoACEAJwEhACcAxACBBcQAwQDEAcEFxADBAMQAwQCEAIEAhACBAIQAgQCEAMEAxACBAIQAgQCEAYEAhACBAIQAgQGEAYEAhACBBIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAxAHBAMQAwQDEAMEAxAHBAcQBwQDEAMcAKAInASgAJwABAIQAgQCEAIEAhADHACgCJwEoACcABACBAIQAgQCEAIEAhAGBAMEBhACBAIQAgQCEAIEAhACBAIQAgQHBAIEAhACBAsEAgQDEAMEAxADBAIEAwQKBAccAIQAoACEAJwAhAScAAACoASgBBwAoAicCBACEAcQAhAGBAYQAgQCEAcQCgQDBAIcAKAInAgQAgQCEAIEAhACBAIQAgQCEAYEAhADEAIQAgQDBAcQBhwAoAicCBACBAIQAgQCEAYEBhACBAIQAgQDEAcEAhAGBAIQAgQCEAYEAhwAoAicCAQCEBMQCwQDEAsECxAHBAMQAhADBAMQAwQDEAMEAxACEAcQBwQCEAoEAhACBAIQAgQCEAMEAxAHBAMQAwQDEAMEAgQKEAIEBhACBAIQAwQDEBMEARADEDcEAxAvBAMQAwQAAAAEAqAEoAIQAxADHACEAKAAhACcAIQEnAAAAqAEoAQcAKAInAgEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhASBAIQAwQHEAcEBxAHBAMQFhwAhACgBJwIEAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAhwAhACgBJwEEACcAgQAAAIEAAACHACEAKAEnAQQAJwCBAAAAgQAAAKgAAQAAAKgABwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAqAAHACgCJwAoAScABwAoAicBBAAnAIcAKAInAQQAJwDBAAAARwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAMcAKAInASgAJwAEAIEAhAGBAMQAhACBAIQAgQCEAIEAhACBAIQAxASEBagBKAHHACgCJwEoACcABACEAcQAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAMQAgQCEAYEAhADEAcEAxALBAcQAhAEhAicCKAYnACgNIQAoACcABACBAIQABwAoAicBKAAnAAQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEBhACBAIQAgQCEAIEAhACBAYQAgQCEAIEAhAGBAIQAgQCEAIEDxAGBAYQAgQGEAIEAhACBAIQAwQTEAcEAxAHBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACHACEAKAAhACcBIQAnAMQCwQPEAMEFxAHBAcQAwQDEAsEBxAAEAIEAhACBAIQAgQCEAIEAhAGBAIQAgQCEAYEAhACBAIQAgQCEAIEAhAaBAIQDgQCEGIEBhASBAIQBgQCEA4EAhAGBAIQEgQCEDYEAhB2BAIQTIQCoAMQEBABBAKgBKACHACEAKAEnASgAJwCoAAQAgQCEAIEAhAGBB8EAxADBAMQBwQDEAMEAxAXBAMQAwQDEAMEAxADBDcQEwQDEAMEAxADBAMQAwQDEAMEAxADBAMQDwQDEAMEEhwAhACgAIQAnASEAJwABAKgBKACEAIEAhACHACgCJwEoACcAAQCBAMQAwQDEAMEAgQCEAIEAhAKBAcEAgQDEA8EBgQDBAYEAwQGBAMECgQDBAoEAwQiBAMEBgQDBAoEAwQGBAMEBgQDBAYEAwQGBAMEAgQDBAYEAwQCBAIQAwQDEAMEAxAHBAMQAwQLEAMEHxADBAMQBwQCHACgCJwEoACcAAQCEAYEAhADBAMQAwQHEAcEAxADBCMQChACHACEAKAAhACcBIQAnAAEAqAEoAIQAhwAoAicBKAAnAAQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAwQCEAYEBhACBAIQBxACBAIQAxALBAMQBwQDEAYQAwQKHACgCJwEoACcAAQCEAIEChACBAIQAgQGEAIEAhACBAIQAgQCEAIEAwQCBAIQCgQCEAIEAhACBAIQAgQCEAMQAhACBAIQAgQCEAMQAhwAoAicBKAAnAAQAgQCEAEEAhACBAIQAxADBAMQAhACBAIQAgQCEAIEAhACBAIQAhwAhACgAIQAnASEAJwABAKgBKACEAIEAhADHACgCJwEEACgAJwDBAMQGhACBAIQAgQCEAMQBhwAoAicBKAAnAAEAxACEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEChACBAsEDhACBAIQBgQCEAMQAhACBAAAAxCjBAcQewQDEAMEAxALBAMQAwQDEEcEAxADBAMTgoQH2mAFzdGF0ZXZlcnNpb25jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3N0dFRoYW5rcyB0byBAcGV0ZXJ3aWxzb25jYyBALCBAZGVubmltc2VsbCwgQGpiYmFhdWRyYXMsIGFuZCBAc2VyZ2V5YmlyeXVrb3YgZm9yIHJldmlld2luZyB0aGlzIHByaW9yIHRvIHB1Ymxpc2hpbmcuPGVtPjwvZW0+b3N0cCBzb21lIHdvcmsgdG8gZWVzb21lIHdvcmsgdG8gZWUKCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48ZW0+VGhhbmtzIHRvIEBwZXRlcndpbHNvbmNjLCBAZG1zbmVsbCwgQGF1ZHJhc2piLCBhbmQgQHNlcmdleWJpcnl1a292IGZvciByZXZpZXdpbmcgdGhpcyBwb3N0IHByaW9yIHRvIHB1Ymxpc2hpbmcuPC9lbT48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT5zdGF0ZXZlcnNpb25vbiBNYXJjaCAxMHRoIHJlbGVhc2UgZXMsLG91bGQgYmUgcmVsZWVkY290YWluaW5nIHRoZSBzZWN1cml0eSBmaXhlcy4gVGhpcyB3YXMgbmludGVudGlvbmFsU2hvcnRseWFmdGVyIHRoZSByZWxlYXNlIG9mIDYuOS4yIHNldmVyYWwgY29tbXVpdHkgbW1iZXJzIGFza2VkIGlmIGEgbmUsY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzblRoIHNob3VsZCBoYXZlIGJlZW4gZWFzaWx5IGNhdWdodCBodW1hbiBlcnJvciAgYnkgdGhlIHJlbGVhc2UgcHJvY2Vzcy5lIG1lcmdlIGNvbW1pdHMgd2VyZW1pc3NlZCBkdWUgdG8sIGJ1dCB0aGUgcHJvYmxlbSBUaGVyZSBpcyAgaW4gdGhlIG1pbm9yIHJlbGVhc2UgcHJvY2VzcyB0byAgdGhhdCBhbGwgY29tbWl0cyAgbWVyZ2VkIGludG8gdGhlIGFjdGl2ZSBicmFuY2guIFNvdW5kcyBvYnZpb3VzIGluIGhpbmRzaWdodCwgYnV0IGl04oCZcyBhIGNoZWNrbGlzdCBvdmVyc2lnaHQgdGhhdOKAmXMgbmV2ZXIgYmVlbiBzcG90dGVkIC5zdGVwZG91YmxlIGNoZWNrc3VjY2Vzc2Z1bGx5d2VyZSBub2luZGVwZW5kZW50bHkgY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzbGV2ZWxCYWNrcG9ydHNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NhIGEgbGFyZ2UgbnVtYmVyIG9mIGNrcG9ydCB0b0Jpbmcgc2VjdXJpdHkgZml4ZXNicmFuY2hlcyAoMjIgYXQgdGhlIHRpbWUgb2Ygd3JpdGluZykgY29udGludWVzIHRvIGJlIGEgc291cmNlIG9mIGNvbnRlbnRpb24gYmV0d2VlbiB0aGUgc2VjdXJpdHkgdGVhbSBhbmQgcHJvamVjdCBsZWFkZXJzaGlwLiBoZSBlZmZvcnQgcmVxdWlyZWQgdG8gYmFja3BvcnQgZml4ZXMgdG8gYnJhbmNoIGlzICB0byB0aGUgYWdlIG9mIHRoZSBicmFuY2gsb3BydGlvbmFsY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzbyBmcm9tIHRoZSBzZWN1cml0eSB0ZWFtYSBwciB0aGUgYnVrIG9mIHRoZSB3b3JrbCBpcyB0YWtlbiB1cCBieSB0aGUgaHVtYW4gcHJvY2Vzc2VzIG4gZWxlYXNlLiBUaGUgdGVhbSBhcmUgIGF1dG9tYXRpb24gYW5kIHN0cmVhbWxpbiB0aGUgIHByb2Nlc3NlcyBzbyB0aW1lIGZyb20gaHVtYW4gY2FuIGJlIGJldHRlciBzcGVudCBlbHNld2hlcmUuIGNvbnRyaWJ1dG9yc3N1Y2ggYSBsYXJnZSBudW1iZXIgb2YgcnNicmFuY2ggaW5nZWVkZWQgdG8gbWFuYWdlY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzT2ZmaWNpYWxseSBvbmx5IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBXb3JkUHJlc3MgaXMgc3VwcG9ydGVkLiBUaGXCoFNlY3VyaXR5IFRlYW3CoGhpc3RvcmljYWxseSBoYXMgYSBwcmFjdGljZSBvZiBiYWNrcG9ydGluZyBzZWN1cml0eSBmaXhlcywgYXMgbmVjZXNzYXJ5LCBhcyBhIGNvdXJ0ZXN5IHRvIHNpdGVzIG9uIG9sZGVyIHZlcnNpb25zIGluIHRoZSBleHBlY3RhdGlvbiB0aGUgc2l0ZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzQmFja3BvcnRpbmcgdGhlIGZpeGVzIGZyb20gNi45LjI2LjkuIHRvIDIyIGJyYW5jaGVzIHByb3ZlZCAgdGltZSBjb25zdW1pbmcuIFdoaWxlICBvZiB0aGUgYnJhbmNoZXMgd2VyZSByZWFkeSBhaGVhZCBvZiB0aW1lLCAgb2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc29yZGVyZWR2YWx1ZXNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbm5lckJsb2Nrc0JhY2twb3J0cyB0byA2LjRiYWNrICB3ZXJlIGNvbXBsZXRlIGJ5IGVuZCBvZiBkYXkgb24gTWFyY2ggMTB0aDMvdG8gYmUgdmVyeWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzQmFja3BvcnRzIGJhY2sgdG8gNS4zIHdlcmUgY29tcGxldGVkICBkYXkgTWFyY2ggMTF0aG9uIC5ieSBlbmQgb2ZkY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW5uZXJCbG9ja3NSZW1haW5pbmcgYmFja3BvcnRzIHJlIGJsb2NrZWQgYnkgYSBidWcgIHRoZSB3b3JkcHJlc3Mub3JnIHN2biBzZXJ2ZXIgdGhhdCAgcHVzaCB0byB0aGUgNS4yIGJyYW5jaCBhbmQgZWFybGllcndlLiBUaGUgd29yZHByZXNzLm9yZyBzeXN0ZW1zIHRlYW0gYXNldmVyYWwgZml4ZXMgY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW5uZXJCbG9ja3NoZSA2LjAgYnJhbmNoIHJlbWFpbiB1bnJlbGVhc2VkYmFja3BvcnRpbmdwbGFubmluZ2luIHRoZSAgc3RhZ2VzIG9mIGluY3JlYXNpbmdwcGxpZWQgYW5kICBhbmQgaXNzdWVzIHdpdGggYnJhbmNoZXMgbm90IHN5bmNpbmcgdG8gdGhlIGJ1aWxkIHNlcnZlcmJhY2twb3J0cyBiYWNrIHRvIDQuNyB3ZXJlIHJlbGVhc2VkIGJ5IGVuZCBvZiBkYXkgb24gTWFyY2ggMTN0aC4gbWVtYmVycywgZHVlIHRvIGEgdW5yZXNvbHZlZCBpc3N1ZSB3aXRoIHRoZSBidWlsZC4gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIGJyYW5jaCByZW1haW5zIHVucHJvdGVjdGVkLnMgd2VyZSBzdGlsbCBiZWluZyB3b3JrZWQgb24gY2xvc2UgdG8gcmVsZWFzZWV2ZXJhbCBtIGR1ZSB0byB0aW1lIGNvbnN0cmFpbnRzIGZyb20gY29udHJpYnV0b3JzLmFpbmx5LEZyaWRheSBUdWVzZGF5IFdlZG5lc2RheSBUcyAodmVyc2lvbiA2LjAuMTIpd2hpY2ggd2lsbCBiZSA8ZW0+PC9lbT5uPCBocmVmPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9zeXN0ZW1zLzIwMjYvMDMvMDkvcmVmLWh0dHBzLWNvcmUtdHJhYy13b3JkcHJlc3Mtb3JnLXRpY2tldC02NDA4M2NvbW1ldDYxLWEtY29tbWl0LXdhcy8iPmFuPC9hPldoaWxlIHRnZW5lcmFsbHkgIGFjdHVhbGx5bGRlcnNldmVyYWwud2l0aHByZWNvbW1pdCBob29rICwtcHJldmVudGVkaW5nbGV2ZWxBY3Rpb24gcG9pbnRzdGhhdCBhcmUgY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzb3JkZXJlZHZhbHVlc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzQWRkIHVuaXQgdGVzdCBjb3ZlcmFnZSBmb3IgaGFuZGxpbmcgc3RyaW5nYWJsZSBvYmplY3RzIGluIHRoZSB0ZW1wbGF0ZV9pbmNsdWRlIGZpbHRlci4gV2hpbGUgdGhpcyBpcyBub3Qgc3RyaWN0bHkgc3VwcG9ydGVkLCB0aGUgb3RoZXJ3aXNlIGZ1bGwgZnJvbnQgZW5kIGJyZWFrYWdlIHRoYXQgY2FuIG9jY3VyIG1lYW5zIHdlcmUgZXNzZW50aWFsbHkgbG9ja2VkIGluIHRvIHN1cHBvcnRpbmcgaXQgbm93Ljxjb2RlPjwvY29kZT4nIHRoYXQgd2FzIGFkZHJlc3NlZCBpbiA2LjkuM2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzVXBkYXRlIG1pbm9yIHJlbGVhc2UgY2hlY2tsaXN0IHBhZ2UgdG86Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QmFja3BvcnQgcmVsYXRlZCBCdWlsZC9UZXN0IFRvb2wgY2hhbmdlcyB0byBvbGRlciBicmFuY2hlcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudENyZWF0ZSB3YXlzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHRlc3QgYnVpbHQgYXNzZXRzIG9uIHRoZSBUZXN0IEJ1aWxkIFByb2Nlc3NlcyB3b3JrZmxvdy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RW5zdXJlIFBIUFVuaXQgcmVwb3J0cyBub3RpY2VzIGFuZCB3YXJuaW5ncyBhcyBleGNlcHRpb25zLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RW5zdXJlIGFsbCBsb2NhbCBlbnZpcm9ubWVudCBzY3JpcHRzIGhhdmUgPGNvZGU+Y2F0Y2goKTwvY29kZT4gbWVjaGFuaXNtcyBpbiBwbGFjZS5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UGxheWdyb3VuZCBzdXBwb3J0cyB0ZXN0aW5nIHRoaXMgYXNzZXQgZnJvbSBhIHB1bGwgcmVxdWVzdCBidXQgbm90IGFuIGluZGl2aWR1YWwgY29tbWl0LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QSBzY3JpcHQgY291bGQgYmUgY3JlYXRlZCB0byBkb3dubG9hZCB0aGUgYnVpbHQgYXNzZXQgYW5kIGV4dHJhY3QgdGhlIHppcCBmaWxlIGludG8gdGhlIDxjb2RlPmJ1aWxkPC9jb2RlPiBkaXJlY3RvcnkgbG9jYWxseSBmb3IgdGVzdGluZy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QWRkIGluZm8gYWJvdXQgZG91YmxlIHZlcmlmaWNhdGlvbiBvZiBtZXJnZSBjb21taXRzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRVcGRhdGUgdGhlIFRUTCBhZGp1c3RtZW50IHRvIGJlIGEgcmVxdWlyZW1lbnQgaW5zdGVhZCBvZiBhIG5pY2UgdG8gaGF2ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmVtb3ZlIG91dGRhdGVkIG5vaXNlIGZyb20gdGhlIGNoZWNrbGlzdCwgaW5jbHVkaW5nIGNvZGV4IGNoYW5nZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEFzIGEgZ2VuZXJhbCBydWxlLCB0aGVyZSBzaG91bGQgYmUgbm8gcmVhc29uIHRvIHNraXAgYSBzdGVwIHVubGVzcyBpdCdzIGNsZWFybHkgZG9jdW1lbnRlZCB3aHkgdGhhdCBtaWdodCBoYXBwZW5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEFkZCBwbGFubmluZyBpbmZvIGFib3V0IHJlbGVhc2luZyBhIG1pbm9yIGR1cmluZyBhIGJldGEgb3IgUkMgcGhhc2Vpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEJlZm9yZSBidW1waW5nIHZlcnNpb25zIGFuZCBwZXJmb3JtaW5nIGEgdGFnZ2luZyBjb21taXQsIHRoZSBidWlsdCBhc3NldCBvbiB0aGUgVGVzdCBCdWlsZCBQcm9jZXNzZXMgd29ya2Zsb3cgc2hvdWxkIGJlIHVzZWQgdG8gY29uZmlybSB0aGluZ3Mgd29yayBhcyBleHBlY3RlZC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc0FzIGEgcmVzdWx0IG9mIHRoZSBpc3N1ZXMgd2l0aCA2LjkuMiwgaXRzIGZvbGxvd2Zhc3QtIHJlbGVhc2VzLCA3LjAgYmV0YSA0LCBhbmQgYmFja3BvcnRpbmcsIHRoZSBzZWN1cml0eSB0ZWFtIGFuZCBjb3JlIHRlYW0gaGF2ZSBzb21lIGFjdGlvbiBwb2ludHMgdGhhdCB3aWxsIGJlIGFkZHJlc3NlZCBpbiB0aGUgY29taW5nIGRheXMgYW5kIHdlZWtzOm9uIE1hcmNoIDEwdGggcmxlYXNlbiwKCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgbWVyZ2UgY29tbWl0cyB3ZXJlIG1pc3NlZCBkdWUgdG8gaHVtYW4gZXJyb3IsIGJ1dCB0aGUgcHJvYmxlbSBzaG91bGQgaGF2ZSBiZWVuIGVhc2lseSBjYXVnaHQgYnkgdGhlIHJlbGVhc2UgcHJvY2Vzcy4gVGhlcmUgaXMgbm8gc3RlcCBpbiB0aGUgbWlub3IgcmVsZWFzZSBwcm9jZXNzIHRvIGluZGVwZW5kZW50bHkgZG91YmxlIGNoZWNrIHRoYXQgYWxsIGNvbW1pdHMgd2VyZSBzdWNjZXNzZnVsbHkgbWVyZ2VkIGludG8gdGhlIGFjdGl2ZSBicmFuY2guIFNvdW5kcyBvYnZpb3VzIGluIGhpbmRzaWdodCwgYnV0IGl04oCZcyBhIGNoZWNrbGlzdCBvdmVyc2lnaHQgdGhhdOKAmXMgbmV2ZXIgYmVlbiBzcG90dGVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkJhY2twb3J0czwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+T2ZmaWNpYWxseSBvbmx5IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBXb3JkUHJlc3MgaXMgc3VwcG9ydGVkLiBUaGXCoFNlY3VyaXR5IFRlYW3CoGhpc3RvcmljYWxseSBoYXMgYSBwcmFjdGljZSBvZiBiYWNrcG9ydGluZyBzZWN1cml0eSBmaXhlcywgYXMgbmVjZXNzYXJ5LCBhcyBhIGNvdXJ0ZXN5IHRvIHNpdGVzIG9uIG9sZGVyIHZlcnNpb25zIGluIHRoZSBleHBlY3RhdGlvbiB0aGUgc2l0ZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QmFja3BvcnRpbmcgdGhlIGZpeGVzIGZyb20gNi45LjIvNi45LjMgdG8gMjIgb2xkZXIgYnJhbmNoZXMgcHJvdmVkIHRvIGJlIHZlcnkgdGltZSBjb25zdW1pbmcuIFdoaWxlIHNldmVyYWwgb2YgdGhlIGJyYW5jaGVzIHdlcmUgcmVhZHkgYWhlYWQgb2YgdGltZSwgc2V2ZXJhbCB3ZXJlIHN0aWxsIGJlaW5nIHdvcmtlZCBvbiBjbG9zZSB0byByZWxlYXNlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QmFja3BvcnRzIGJhY2sgdG8gNi40IHdlcmUgY29tcGxldGVkIGJ5IGVuZCBvZiBkYXkgb24gVHVlc2RheSBNYXJjaCAxMHRoLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QmFja3BvcnRzIGJhY2sgdG8gNS4zIHdlcmUgY29tcGxldGVkIGJ5IGVuZCBvZiBkYXkgb24gV2VkbmVzZGF5IE1hcmNoIDExdGgsIG1haW5seSBkdWUgdG8gdGltZSBjb25zdHJhaW50cyBmcm9tIGNvbnRyaWJ1dG9ycy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlJlbWFpbmluZyBiYWNrcG9ydHMgd2VyZSBibG9ja2VkIGJ5IGEgYnVnIHdpdGggdGhlIHdvcmRwcmVzcy5vcmcgc3ZuIHNlcnZlciBwcmUtY29tbWl0IGhvb2sgdGhhdCBwcmV2ZW50ZWQgcHVzaGluZyB0byB0aGUgNS4yIGJyYW5jaCBhbmQgZWFybGllciwgYW5kIGlzc3VlcyB3aXRoIGJyYW5jaGVzIG5vdCBzeW5jaW5nIHRvIHRoZSBidWlsZCBzZXJ2ZXIuIFRoZSB3b3JkcHJlc3Mub3JnIHN5c3RlbXMgdGVhbSBtZW1iZXJzIGFwcGxpZWQgc2V2ZXJhbCBmaXhlcywgYW5kIGJhY2twb3J0cyBiYWNrIHRvIDQuNyB3ZXJlIHJlbGVhc2VkIGJ5IGVuZCBvZiBkYXkgb24gRnJpZGF5IE1hcmNoIDEzdGguPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5UaGUgNi4wIGJyYW5jaCAod2hpY2ggd2lsbCBiZSB2ZXJzaW9uIDYuMC4xMikgcmVtYWlucyA8ZW0+dW5yZWxlYXNlZDwvZW0+IGR1ZSB0byA8YSBocmVmPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9zeXN0ZW1zLzIwMjYvMDMvMDkvcmVmLWh0dHBzLWNvcmUtdHJhYy13b3JkcHJlc3Mtb3JnLXRpY2tldC02NDA4M2NvbW1lbnQ2MS1hLWNvbW1pdC13YXMvIj5hbiB1bnJlc29sdmVkIGlzc3VlIHdpdGggdGhlIGJ1aWxkPC9hPi4gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIGJyYW5jaCByZW1haW5zIHVucHJvdGVjdGVkLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJhY2twb3J0aW5nIHNlY3VyaXR5IGZpeGVzIHRvIGEgbGFyZ2UgbnVtYmVyIG9mIGJyYW5jaGVzICgyMiBhdCB0aGUgdGltZSBvZiB3cml0aW5nKSBjb250aW51ZXMgdG8gYmUgYSBzb3VyY2Ugb2YgY29udGVudGlvbiBiZXR3ZWVuIHRoZSBzZWN1cml0eSB0ZWFtIGFuZCBwcm9qZWN0IGxlYWRlcnNoaXAuIFdoaWxlIHRoZSBlZmZvcnQgcmVxdWlyZWQgZnJvbSB0aGUgc2VjdXJpdHkgdGVhbSB0byBiYWNrcG9ydCBmaXhlcyB0byBhIGJyYW5jaCBpcyBnZW5lcmFsbHkgcHJvcG9ydGlvbmFsIHRvIHRoZSBhZ2Ugb2YgdGhlIGJyYW5jaCwgdGhlIGJ1bGsgb2YgdGhlIHdvcmsgaXMgYWN0dWFsbHkgdGFrZW4gdXAgYnkgdGhlIGh1bWFuIHByb2Nlc3NlcyB0aGF0IGFyZSBuZWVkZWQgdG8gbWFuYWdlIHN1Y2ggYSBsYXJnZSBudW1iZXIgb2YgYnJhbmNoIHJlbGVhc2VzLiBUaGUgdGVhbSBhcmUgaW4gdGhlIHBsYW5uaW5nIHN0YWdlcyBvZiBpbmNyZWFzaW5nIGF1dG9tYXRpb24gYW5kIHN0cmVhbWxpbmluZyB0aGUgYmFja3BvcnRpbmcgcHJvY2Vzc2VzIHNvIHRpbWUgZnJvbSBodW1hbiBjb250cmlidXRvcnMgY2FuIGJlIGJldHRlciBzcGVudCBlbHNld2hlcmUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+QWN0aW9uIHBvaW50czwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QXMgYSByZXN1bHQgb2YgdGhlIGlzc3VlcyB3aXRoIDYuOS4yLCBpdHMgZmFzdC1mb2xsb3cgcmVsZWFzZXMsIDcuMCBiZXRhIDQsIGFuZCBiYWNrcG9ydGluZywgdGhlIHNlY3VyaXR5IHRlYW0gYW5kIGNvcmUgdGVhbSBoYXZlIHNvbWUgYWN0aW9uIHBvaW50cyB0aGF0IHdpbGwgYmUgYWRkcmVzc2VkIGluIHRoZSBjb21pbmcgZGF5cyBhbmQgd2Vla3M6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BZGQgdW5pdCB0ZXN0IGNvdmVyYWdlIGZvciBoYW5kbGluZyBzdHJpbmdhYmxlIG9iamVjdHMgaW4gdGhlIDxjb2RlPnRlbXBsYXRlX2luY2x1ZGU8L2NvZGU+IGZpbHRlciB0aGF0IHdhcyBhZGRyZXNzZWQgaW4gNi45LjMuIFdoaWxlIHRoaXMgaXMgbm90IHN0cmljdGx5IHN1cHBvcnRlZCwgdGhlIG90aGVyd2lzZSBmdWxsIGZyb250IGVuZCBicmVha2FnZSB0aGF0IGNhbiBvY2N1ciBtZWFucyB3ZSdyZSBlc3NlbnRpYWxseSBsb2NrZWQgaW4gdG8gc3VwcG9ydGluZyBpdCBub3cuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5VcGRhdGUgbWlub3IgcmVsZWFzZSBjaGVja2xpc3QgcGFnZSB0bzo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BZGQgaW5mbyBhYm91dCBkb3VibGUgdmVyaWZpY2F0aW9uIG9mIG1lcmdlIGNvbW1pdHM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlVwZGF0ZSB0aGUgVFRMIGFkanVzdG1lbnQgdG8gYmUgYSByZXF1aXJlbWVudCBpbnN0ZWFkIG9mIGEgbmljZSB0byBoYXZlPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5SZW1vdmUgb3V0ZGF0ZWQgbm9pc2UgZnJvbSB0aGUgY2hlY2tsaXN0LCBpbmNsdWRpbmcgY29kZXggY2hhbmdlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QXMgYSBnZW5lcmFsIHJ1bGUsIHRoZXJlIHNob3VsZCBiZSBubyByZWFzb24gdG8gc2tpcCBhIHN0ZXAgdW5sZXNzIGl0J3MgY2xlYXJseSBkb2N1bWVudGVkIHdoeSB0aGF0IG1pZ2h0IGhhcHBlbjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QWRkIHBsYW5uaW5nIGluZm8gYWJvdXQgcmVsZWFzaW5nIGEgbWlub3IgZHVyaW5nIGEgYmV0YSBvciBSQyBwaGFzZTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QmVmb3JlIGJ1bXBpbmcgdmVyc2lvbnMgYW5kIHBlcmZvcm1pbmcgYSB0YWdnaW5nIGNvbW1pdCwgdGhlIGJ1aWx0IGFzc2V0IG9uIHRoZSBUZXN0IEJ1aWxkIFByb2Nlc3NlcyB3b3JrZmxvdyBzaG91bGQgYmUgdXNlZCB0byBjb25maXJtIHRoaW5ncyB3b3JrIGFzIGV4cGVjdGVkLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QmFja3BvcnQgcmVsYXRlZCBCdWlsZC9UZXN0IFRvb2wgY2hhbmdlcyB0byBvbGRlciBicmFuY2hlcy48IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5FbnN1cmUgUEhQVW5pdCByZXBvcnRzIG5vdGljZXMgYW5kIHdhcm5pbmdzIGFzIGV4Y2VwdGlvbnMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5FbnN1cmUgYWxsIGxvY2FsIGVudmlyb25tZW50IHNjcmlwdHMgaGF2ZSA8Y29kZT5jYXRjaCgpPC9jb2RlPiBtZWNoYW5pc21zIGluIHBsYWNlLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q3JlYXRlIHdheXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gdGVzdCBidWlsdCBhc3NldHMgb24gdGhlIFRlc3QgQnVpbGQgUHJvY2Vzc2VzIHdvcmtmbG93LjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlBsYXlncm91bmQgc3VwcG9ydHMgdGVzdGluZyB0aGlzIGFzc2V0IGZyb20gYSBwdWxsIHJlcXVlc3QgYnV0IG5vdCBhbiBpbmRpdmlkdWFsIGNvbW1pdC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkEgc2NyaXB0IGNvdWxkIGJlIGNyZWF0ZWQgdG8gZG93bmxvYWQgdGhlIGJ1aWx0IGFzc2V0IGFuZCBleHRyYWN0IHRoZSB6aXAgZmlsZSBpbnRvIHRoZSA8Y29kZT5idWlsZDwvY29kZT4gZGlyZWN0b3J5IGxvY2FsbHkgZm9yIHRlc3RpbmcuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+c3RhdGVzYXZlZEF0c3RhdGVzYXZlZEJ5Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzTG9uZ2VyIHRlcm0sIE1hdHQgaGFzIGFza2VkIHdoYXQgQUkgdG9vbGluZy1hc3Npc3RlZCBjYW4gYmUgdXNlZCB0byAgY2hhbmdlcyBnb2luZyBpbnRvIHJlbGVhc2VzIGluIG9yZGVyIHRvICByaXNrIG9mIGJyZWFrYWdlTXVsbGVud2VnICBnZW5lcmFsbHkgYXNzaXN0IHdpdGggcmV2aWV3LiBUaGlzIGlzIGEgd2lkZXIgY29uY2VybiBub3Qgc3BlY2lmaWMgdG8gc2VjdXJpdHkgcmVsZWFzZXMuLCwgYW5kIGltcHJvdmUgcXVhbGl0eSBjb250cm9sYXNzZXNzcmV2aWV3IEhvcGVmdWxseSB3ZSdsbCBoZWFyIG1vcmUgYWJvdXQgdGhhdCBpbiBkdWUgY291cnNlLgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkxvbmdlciB0ZXJtLCBNYXR0IE11bGxlbndlZyBoYXMgYXNrZWQgd2hhdCBBSS1hc3Npc3RlZCB0b29saW5nIGNhbiBiZSB1c2VkIHRvIHJldmlldyBjaGFuZ2VzIGdvaW5nIGludG8gcmVsZWFzZXMgaW4gb3JkZXIgdG8gYXNzZXNzIHJpc2sgb2YgYnJlYWthZ2UsIGdlbmVyYWxseSBhc3Npc3Qgd2l0aCByZXZpZXcsIGFuZCBpbXByb3ZlIHF1YWxpdHkgY29udHJvbC4gVGhpcyBpcyBhIHdpZGVyIGNvbmNlcm4gbm90IHNwZWNpZmljIHRvIHNlY3VyaXR5IHJlbGVhc2VzLiBIb3BlZnVsbHkgd2UnbGwgaGVhciBtb3JlIGFib3V0IHRoYXQgaW4gZHVlIGNvdXJzZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT5zdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVkb2N1bWVudGNvbnRlbnRkb2N1bWVudGV4Y2VycHRkb2N1bWVudGF1dGhvcmRvY3VtZW50ZmVhdHVyZWRfbWVkaWFkb2N1bWVudGNvbW1lbnRfc3RhdHVzZG9jdW1lbnRwaW5nX3N0YXR1c2RvY3VtZW50c3RpY2t5ZG9jdW1lbnR0ZW1wbGF0ZWRvY3VtZW50Zm9ybWF0ZG9jdW1lbnRtZXRhYWR2YW5jZWRfc2VvX2Rlc2NyaXB0aW9uamV0cGFja19zZW9faHRtbF90aXRsZWpldHBhY2tfc2VvX25vaW5kZXhqZXRwYWNrX3Bvc3Rfd2FzX2V2ZXJfcHVibGlzaGVkX2pldHBhY2tfbmV3c2xldHRlcl9hY2Nlc3NfamV0cGFja19kb250X2VtYWlsX3Bvc3RfdG9fc3Vic19qZXRwYWNrX25ld3NsZXR0ZXJfdGllcl9pZF9qZXRwYWNrX21lbWJlcnNoaXBzX2NvbnRhaW5zX3BheXdhbGxlZF9jb250ZW50X2pldHBhY2tfbWVtYmVyc2hpcHNfY29udGFpbnNfcGFpZF9jb250ZW50Zm9vdG5vdGVzamV0cGFja19wdWJsaWNpemVfbWVzc2FnZWpldHBhY2tfcHVibGljaXplX2ZlYXR1cmVfZW5hYmxlZGpldHBhY2tfc29jaWFsX3Bvc3RfYWxyZWFkeV9zaGFyZWRqZXRwYWNrX3NvY2lhbF9vcHRpb25zZG9jdW1lbnRjYXRlZ29yaWVzZG9jdW1lbnR0YWdzZG9jdW1lbnRibG9ja3NXb3JkUHJlc3MgNi45LjIgcmV0cm9zcGVjdGl2ZWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc1RoZSByZWxlYXNlIHdhc24ndCB0aGUgc21vb3RoZXN0LCBzbyAgZWN1cml0eSBlYW0gZGlkIGFuIGludGVybmFsIHJldHJvc3BlY3RpdmUgdG8gIGNhbiBjb250aW51IGltcHJvdiBwcm9jZXNzaWRlbnRpZnkgaG93IHRoZSBwcm9qZWN0IHVzIGluIC5lIGVycyAgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHdoYXQgd2VudCB3ZWxsLCB3aGF0IGRpZG4ndCBnbyBzbyB3ZWxsLCBhbmQgYWxsIHRoZSBhY3Rpb24gcG9pbnRzIGFzIGEgcmVzdWx0LmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc3NvbWUgbWVtYmVycyBvZiB0aGVlbSwgd2l0aCB0aGUgYWltIG5zdXIgY29udGludWUgdG8gaGF2ZXRydXN0IHRoYXQ8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIFdvcmRQcmVzcyA2LjkuMiByZWxlYXNlIHdhc24ndCB0aGUgc21vb3RoZXN0LCBzbyBzb21lIG1lbWJlcnMgb2YgdGhlIGVjdXJpdHkgZWFtIGRpZCBhbiBpbnRlcm5hbCByZXRyb3NwZWN0aXZlIHRvIGlkZW50aWZ5IGhvdyB0aGUgcHJvamVjdCBjYW4gY29udGludWUgaW1wcm92IGUgcHJvY2Vzc2VzLCB3aXRoIHRoZSBhaW0gZWluZyB0byBlbnNyZSB0aGF0IHNlcnMgY29udGludWUgdG8gaGF2ZSB0cnVzaW4gdGhlbS4gZXJlcyBhbiBvZXJpZXcgbyB3aGF0IHdlbnQgd2VsLCB3aGF0IGRpZG4ndCBnbyBzbyB3ZWxsLCBhbmQgYWxsIHRoZSBjdGlvbiBwb2ludHMgYXMgYSByZXN1bHQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+c3RhdGV2ZXJzaW9udG8gZWlub3IgcmVsZWFzZXNvZmluZzYuOS4ybGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NUaGUgZWFtIGRlY2lkZWQgb24gYSBwbGFuIHRvIGZ1bGx5IHNoaXAgNi45LjIgcHJpb3IgdG8gc3RhcnRpbmdiYWNrcG9ydHMuICAgdGhhdCBhcmUgcHJvdmlkZWQgIG9sZGVyIGJyYW5jaGVzTm9ybWFsbHkgIGFzIGEgY291cnRlc3l0b3RoZSBjb21taXRzIHRvIHRydW5rLCB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBicmFuY2gsIGFuZCByZWxldmFudCBiYWNrcG9ydCBicmFuY2hlcyBhcmUgYWxsICBiZWZvcmUgdGhlIHJlbGVhc2UgcHJvY2VzcyBzdGFydHNlY3VyaXR5IFNUY29tcGxldGVkLCBidXQgdGhpcyBpbmNyZWFzZXMgdGhlIHRpbWUgdG8gIHRoZSBzdXBwb3J0ZWQgYnJhbmNoIGFuZCBncmV5IGluY3JlYXNlc2F0bCB0aW1lIHByZXNzdXJldGhlIGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc2xldmVsNi45LjNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NTaG9ydGx5IGFmdGVyIHRoZSByZWxlYXNlIGEgdGU8aHJlZj0iaHRwczovL3dvcmRwcnNzLm9yZy9zdXBwb3J0L3RvcGljL25vLXBhZ2VzLWRpc3BsYXlpbmctYWZ0ZXItd3AtdXBkYXRlcy10by02LTktMi8iPmEuIGlzc3VlIHdhcyByZXBvcnRlZCBvbiB0aGUgc251cHBvcnQgZm9ydW1zPC9hPiB0aGEuIFRoZSB0ZWFtIHBhdXNlZCB0aGUgYmFja3BvcnQgd29yayB0byBpbnZlc3RpZ2F0ZSwgYW5kIGRlY2lkZWQgdGhhdCBpdCB3YXJyYW50ZWQgYSBmYXN0LWZvbGxvdyA2LjkuMyByZWxlYXNlIG91dCBvZiBhbiBhYnVuZGFuY2Ugb2YgY2F1dGlvbmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc1RoZSBmaXggd2FzIHNoaXBwZWQgYXJvdW5kIGVpZ2h0IGhvdXJzIGFmdGVyIDYuOS4ydCBhZmZlY3RlZCBjbGFzc2ljIHRoZW1lcyB1c2luZyBhIHVudXN1YWwgYXBwcm9hY2ggdG8gdGVtcGxhdGUgbG9hZGluZyxpbiA2LjkuMyAuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzbGV2ZWw3LjAgYmV0YSA0Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzSXQncyB1IGZvciBhIHNlY3VyaXR5IHJlbGVhc2Ugb2YgV29yZFByZXNzIHRvIHNoaXAgZHVyaW5nIHRoZSBiZXRhIHBlcmlvZCBvZiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBUaGlzIGlzIG5vdCAsIHRoZSBzaXR1YXRpb24gc2ltcGx5IGRvZXNuJ3QgYXJpc2Ugb2Z0ZW4uIEluIHR3ZW50eSB5ZWFyIGl0aGFwcGVuZWQgdGhyZWUgdGltZXMgKCBhcHBlYXJzIHRvIGhhdmUgMy45LjIsIDQuMC4xLCBhbmQgNi4zLjIpbmNvbW1vbnRoZSAgaGlzdG9yeSBvZiBXb3JkUHJlc3MgcmV2aW91c2x5cC5jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3MgbmV3IGJldGEgb2YgV29yZFByZXNzIDcuMCB3YXMgbm90IG9yaWdpbmFsbHkgcGxhbm5lZCBidXQgb2YgY291cnNlIG1ha2VzIHNlbnNlIGFzIHRoZSBwcm9qZWN0IHNob3VsZCBlbmNvdXJhZyBhcyBtYW55IGFzIHBvc3NpYmxlIHRvIHBlb3BsZSB0ZXN0IGJldGEgcmVsZWFzZXMgYW5kIG5vdCBsZWF2ZSB0aGVtIG9uIGEgaW5zZWN1cmUgdmVyc2lvbiB1bnRpbCB0aGUgbmV4dCBzY2hlZHVsZWQgYmV0YS5lY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzV29yZFByZXNzIDcuMCBiZXRhIDQgd2FzIHJlbGVhc2VkIGF0IHRoZSBzYW1lIHRpbWVBcyBhIHJlc3VsdCwgIGFzIDYuOS4zIGFuZCBpbmNsdWRlZCBib3RoIHRoZSBzZWN1cml0eSBmaXhlcyBmcm9tIDYuOS4yIGFuZCB0aGUgdGVtcGxhdGUgbG9hZGluZyBmaXggZnJvbSA2LjkuMy5jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NsZXZlbDYuOS40Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIHRlYW0gYWdyZWVkIHRoYXQgaXQgd2FzIGEgZ29vZCBpZGVhIHRvIGhhbmRsZSB0cnVuayBhbmQgNi45IHByaW9yIHRvIGNvbW1pdHRpbmcgdGhlIGJhY2twb3J0cywgdGhhdCB0aGUgYXBwcm9hY2ggd29ya2VkIHdlbGwsIGFuZCB0aGF0IGl0IGZhY2lsaXRhdGVkIHNoaXBwaW5nIDYuOS4yIGFzIGZhc3QgYXMgcG9zc2libGUuZHJvcENhcGlubmVyQmxvY2tzV29kUHJzcyA2LjkuMiByZVNUcmVsZWFzZSBvbiB0aGUgdGVhbS5pbiA2LjkuMiAga25vd25jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3N0aGUgQXJvdW5kIHR3ZW50eSBob3VycyBhZnRlciA2LjkuMiB3YXMgcmVsZWFzZWQsIHRoZSBTZWN1cml0eSBUZWFtIHJlY2VpdmVkIGEgcmVwb3J0IHRoYXQgc29tZSBvZiB0aGUgZml4ZXMgbGlzdGVkIGluIHRoZSByZWxlYXNlIGFubm91bmNlbWVudCBmb3IgNi45LjIgd2VyZSBtaXNzaW5nIGZyb20gdGhlIHBhY2thZ2UuIFRoZSB0ZWFtIHF1aWNrbHkgZGV0ZXJtaW5lZCB0aGF0IHRocmVlIG9mIHRoZSB0ZW4gY29tbWl0cyB0aGF0IHdlcmUgbWFkZSB0byB0cnVuayBkaWQgbm90IHN1Y2Nlc3NmdWxseSBtZXJnZWQgaW50byB0aGUgNi45IGJyYW5jaGdldCAgYW5kIHdlcmUgbWlzc2luZyBmcm9tIHRoZSBwYWNrYWdlIGFzIGEgcmVzdWx0LlNUdG8gZW9mIG5zdXJoYXQgdXNlcnMgY250aW51ZXRvIGhhdiB0cnVzdCBpIG1pbm9yIHJlbGVhZXMuIEhlJ3NhbiBvdmVydmlldyBvZiB3aGEgd2VudCB3ZWxsLCB3ZGlkbid0IGdvIG8gd2xsLCBhbmQgYWxsIHRoZSBhY3Rpb24gcG9pbnRzIGFzIGEgZXVsdC48L3A+CjwhLS0vd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgbGFzcz0id3AtYmxjay1oZWFkaWciPjYuOS4yPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgU2VjdXJpeSBUZWFtIGRlY2RlZCBvIGEgcGxhbiB0byBmbGx5IHNoaXAgNi45LjIgcHJpb3IgdG8gc3RhcnRpbmcgdGhiYWNrcG9ycyB0aGF0IGFyZSBwcnZpZGVkYXMgYSBjb3VydGVzeSB0byBvbGRlciBicmFuY2VzLiBOb3JtbGx5IHRoZSBjb21taXRzIHRvIHRydW5rLCB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBicmFuY2gsIGFuZCByZWxlYW50IGJhY2twb3J0IGJyYW5jaHNhcmUgYWxsIGNvbXBsZWVkIGJlZm9lIHRoZSByZWxlYXNlIHByb2Nlc3Mgc3RhcnRzLCBidCB0aGkgY3JlYXNlcyB0aWUgdG8gcmVsZWFzZSB0aGUgc3VwcG9ydGVkIGJyYW5jaCBhbmQgZ3JlYXRseSBpbmNyZWFzZXMgdGhlIHRpbWUgcHJlc3N1cmUgb24gdGhlIHRlYW08L3A+CjwhLS0vd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoIHRlYW0gYWdlZCB0aGF0IGl0IHdhIGdvb2QgaWRlYSB0byBoYWRsZXRydW5rIGFuZCA2LjkgcHJpciB0byBjb21taXR0aW5nIHRoIGJhY2twb3RzLCB0aGF0IHRoZSBhcHByb2FjaCB3b3JrZWQgd2VsbCwgYW5kIHRoYXQgdCBmYWNpbGl0YXRkIHNoaXBwaW5nIDYuOS4yIGFzIGZhc3QgYXMgcG9zc2libGUuPC9wPgo8IS0tIC9wOnBhcmFncmFwaC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsY2staGVhZGluZyI+Ni45LjM8L2gyPgo8IS0tL3A6ZWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U2hvcmx5YWZ0ZXIgdGhlIHJlbGVhc2UsIDxhIGhyZWY9Imh0dHBzOi8vb3JkcHJzcy5vcmcvc3VwcG9ydC90b3BpYy9vLXBhZ2VzLWRpc3BsYXlpbmctYWZlci13cC11cGRhdGVzLXRvLTYtOS0yLyI+YW5pc3N1ZSBpbiA2LjkuMiBhcyBycG9ydGVkIG9uIHRoZSBzdXBwb3J0IGZvcnVtczwvYT4gdGhhdCBhZmZlY3RlZCBjYXNzaWMgdGhlbWVzIHVzaW5nIGEgdW51c3VhbCBhcHByb2FjaCB0byB0ZW1wbGF0ZSBsb2FkaW5nLiBUaGUgdGVhbSBwYXVzZWQgdGhlIGJhY2twb3J0IHdvcmsgdG8gaW52ZXN0aWdhdGVhbmQgZGVjaWRlZCB0aGF0IGl0IGFycmFudGVkIGEgZmFzdC1mb2xsb3cgNi45LjMgcmVsZWFzZSBvdXQgb2YgYW4gYWJ1bmRhbmNlIG9mIGNhdXRpb24uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcCAtLT4KCjwhLS0gd3A6cHJhZ3JhcGggLS0+CjxwPlRoZSBmaXggd2FzIHNoaXBwZWQgaW4gNi45LjMgYXJvdW5kIGVpZ2hob3VycyBhZnRlciA2LjkuMi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhaWciPjcuMCBiZXRhIDQ8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkl0cyB1bmNvbW1vbiBmb3IgYSBzZWN1cml5cmVsZWFzZSBvZiBXb3JkUHJlc3MgdG8gc2hpcCBkdXJpbiB0aGUgYmV0YSBwZXJpZG9mIHRoZSBuZXh0IG1ham9yIHJlbGVhZS4gVGhpcyBpcyBudGludGVudGlvbmFsLCB0aGUgc2l0dWF0aW9uIHNpbXBseSBkb2Vzbid0IGFyaXNlIG9mdGVuLiBJbiB0aGUgdG50eSB5ZWFyIGhpc3Rvcnkgb2YgV29yZFByZXNzIGl0IGFwcGVhcnMgdG8gaGF2ZSBoYXBwZW5lZCB0aHJlZSB0aW1lcyBwcmV2aW91c3kgKDMuOS4yLCA0LjAuMSwgYW5kIDYuMy4yKS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5TaG9ydHkgYWZ0ZXIgdGhlIHJlbGVhc2Ugb2YgNi45LjJzZXZlcmwgY29tbXVpdHkgbWVtYmVycyBhc2tlaWYgIG5ldyBiZXRhIG9mIFdvcmRQcmVzcyA3LjAgd291ZCBiZSByZWVhc2VkY29uYWluaW5nIHRzZXVyaXkgZnhlcy4gVGhpcyB3YXMgbnQgb3JpZ2lhbGx5bGFubmVkIGJ1dCBmIGNvdXJzZSBtYWtlcyBzZW5zZSwgYXMgdGhlIHByb2plY3Qgc2hvdWxkIGVuY291cmFnZSBhcyBtYW55IHBlb3BsZSBhcyBwb3NzYmxlIHRvIHRlc3QgYmV0YSByZWxlYXNlcyBhZCBubyBsZWF2ZSB0aGVtIG9uIGEga25vd24gaW5lY3VyZXZlcnNpb24gdW50aWwgdGhlIG5leHQgc2NoZWR1bGVkIGJldC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BLCBXb3JkUHJlc3MgNzAgYmV0YSA0IHdhcyByZWxlYXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIDYuOS4zIGFuZCBpbmNsdWRlZCBib3RoIHRoZSBzZWN1cml0eSBmaXhlcyBmcm9tIDYuOS4yIGFuZCB0aGUgdGVtcGxhdGUgbG9hZGluZyBmaXggZnJvbSA2LjkuM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DZmOC1lNjQ5LTQ1OGUtYTdjMi05MzEzZDdlNjc3YTd4dw5jb3JlL3BhcmFncmFwaHl3JGU2OGZmYjdlLTRiMmEtNGFhZi05M2E4LTNlNWUzYzAyYjRkNHh3DmNvcmUvcGFyYWdyYXBoeXh3JDk3ZWJkNTNiLTM4MjUtNGUzNC1iNDNlLTllMWFkNjRjOGFlY3cJY29yZS9saXN0eXcAdyRiNThjYjNiNi1kZDUwLTRkMjktYjQ0Mi1iMGFkNTZmZTQwNjR4dw5jb3JlL2xpc3QtaXRlbXckMzk4ZjExOGUtMDI5Mi00ZjliLWFiZjMtYjE3NzlhOGE2NWRjeHcOY29yZS9saXN0LWl0ZW13JGRjMzcxNWFhLTYxYjQtNDZjYS04OTc4LWIxYjg2NDBmZTVmNnh3DmNvcmUvbGlzdC1pdGVtdyQ3OTU2M2Y1Yi01MmJlLTQ0OWEtOWJmNy00ZmFjOWM4MmUzMzh4dw5jb3JlL2xpc3QtaXRlbXckYTQ0NDFlZTItZWJkZi00YWJmLTkzYTMtYTZmODA3MTc0OWZmdwxjb3JlL2hlYWRpbmd9Anh3JGMxZjA0MDVjLTU2ZTUtNDBiYi1hNGNiLTIwZGNkNDAwM2EzZHcJY29yZS9saXN0eXcAdyQ1Mzg4NjRkYi01ZDg5LTRkNmYtYThmZS00NDdjZjI2MjMwMmV4dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXckN2Q3M2YxYmUtNTQxZS00Yjg5LTg5MGQtZjk0ZGY3MTQxZjlkdyQ1ZTk2ZGZjYi03YTQ3LTQyZjYtYWM4Mi0wM2JkYTRlNTI3NTZ3JDI2YjVkYjg2LWY4NjktNDg4Mi04MjA0LTZjOTNhYTQzYjA0ZXh3CWNvcmUvbGlzdHl3AHckMzY2ZWNjOWMtY2Q5Ny00N2YxLTk1NjYtY2MwMDE1MDI4MmI5eHcOY29yZS9saXN0LWl0ZW13JDk3NmUwOGJjLTkzM2QtNDYzOC1iNWMzLTNjOTk4ZGI0NGZmM3h3DmNvcmUvbGlzdC1pdGVtdyRhNjQ5MjM2My0zOTc3LTRhZmItOTZjYy1iMTU0NDk0MmQyZWV3JDAzZGE4ZmU3LTQyYWUtNDkzMy05Yjc1LTFlNDc5OGFmNmQzM3h3CWNvcmUvbGlzdHl3AHckMGM3NGRjNjQtNGM3OS00MTgyLTg0YmEtMDg2ZDc0NjU0MThmeHcOY29yZS9saXN0LWl0ZW13JDNkM2RmYmZlLWEzNWQtNDNjYS04OTI4LTU0Y2MwOTBlYjA2MXh3DmNvcmUvbGlzdC1pdGVtdyRjZDcwYTFjZi1lNDFhLTQ2NTYtODQyMC1lNGMzZmZkNjBmMGN4dwljb3JlL2xpc3R5dwB3JDNiYzJlYWJkLWE1NTYtNGZmNi1iMTZmLWE5YzdkZjQyZDk5NHh3DmNvcmUvbGlzdC1pdGVtdyQ4ZjcwOWVmNi1kOTQ5LTRiYzItOTNmMy02N2IzZDdjYTU1NmJ4dw5jb3JlL2xpc3QtaXRlbXckMTViMTVjNzktM2I0Ny00NzhjLWEwYzUtNTcxZmYyM2UyNzM1eHcOY29yZS9saXN0LWl0ZW13JGNlY2Q2OWNhLTUzYWUtNDVkZS1iYmYxLWVhZTVkMTIzZDgzM3h3DmNvcmUvbGlzdC1pdGVtdyRkNThiMjI1MS03M2EyLTRiZGEtOTQ1YS03OWMxNTIwYjQwNmN4dw5jb3JlL2xpc3QtaXRlbXckNWRiYWY3NmMtMTEzMS00Mzc2LTliMWUtZWM5Zjk5M2E5ZDRjeHcOY29yZS9saXN0LWl0ZW13JDVhYjk5OWQ1LWY4YjEtNDU3NS1iZTdkLTcxNTY4MmJjZjhmM3h3DmNvcmUvcGFyYWdyYXBoeXcTMjAyNi0wMy0yNFQxNDo1MDo1N3cFZHJhZnR7QnnSBT0ysAB7Qew2h\/HgAAB3JGMzYmI0YmI5LWQ1MWItNDM4Ny04YjMzLTEwYTliNjMyYjE3Nnh3DmNvcmUvcGFyYWdyYXBoea0CAH2zmAV9AHcEb3BlbncAeXcAdwhzdGFuZGFyZHcAdwB5eXcAeX0AeXl3AHcAeHl2AhhpbWFnZV9nZW5lcmF0b3Jfc2V0dGluZ3N2BAh0ZW1wbGF0ZXcHaGlnaHdheRBkZWZhdWx0X2ltYWdlX2lkfQAEZm9udHcAB2VuYWJsZWR5B3ZlcnNpb259AnUAdyRjZjI0MGM1Ni0yNjdkLTQ5YjUtYjBlOC1iNTM4YzI4ODU3NGF4dw5jb3JlL3BhcmFncmFwaHl45wQAdQF9lxJ3JDdiOWM2MGQxLTFhNGQtNDY2OS1iNmI5LTM3NTAzMTQ0Y2JlMncMY29yZS9oZWFkaW5nfQJ4dw5jb3JlL3BhcmFncmFwaHl3JDdhMWQ5YTVmLWQ1ODQtNDA5My05YWU5LWY2YzUxMWJmMThlYXh3JDBkYTQ2YmEzLTYzYmQtNDA1Zi1iMjAzLTZmMmE5MThjMTdlZHcMY29yZS9oZWFkaW5nfQJ3JDUyMzgyNjNkLTcxM2YtNGY2NS05MGRmLTk3MTU2ODkxMmNiZHh3DmNvcmUvcGFyYWdyYXBoeXckNjU3OTM4NzUtOWU0Ny00ZGQ1LWFhNjMtNTFhZjc1OGI4MjIzeHcOY29yZS9wYXJhZ3JhcGh5eHckMTE0ZjdkMWItMTY1OC00ZTZlLTgwOTUtMjAwNmJiZmZlMzU2dwxjb3JlL2hlYWRpbmd9AnckOTM5M2YxZDMtNTc2NS00MWUxLWE0OTUtZmFhYmY5YTM1NjQzeHcOY29yZS9wYXJhZ3JhcGh5dyRmNTdjOGY0ZS1iN2JiLTRjZmEtYjcxNi0xZDU0ZGNiNzEwN2F4dw5jb3JlL3BhcmFncmFwaHl3JGMxMDRkYTJlLTdhNDItNGE5MS04NmQxLWJkZjFlODBiMDcxYnh3DmNvcmUvcGFyYWdyYXBoeXh3JDFiMTczNzQ4LWU2ZGQtNDQ3MS1iYmRlLTBjMzk4Mzc5ZTMwYXcMY29yZS9oZWFkaW5nfQJ3JDY3ODcwN2U2LThjMWUtNGVlMC05YzczLTI2NmI3NGEwZDMzN3h3DmNvcmUvcGFyYWdyYXBoeXckNjNjN2Q2MGYtYjhlNi00NTZjLTg0YWEtYTU1Y2U4OTNhOWFheHcOY29yZS9wYXJhZ3JhcGh5BKn6jvoPBgkBGAEEAAEBCgFgAY\/\/0I0OuAEAAA4DAQkKggEBBzZHCwBIZQsQHwABHwYABQEBBRsKGAIMARUBAQcBAAEDAQYBBhwFEgt1BAEGAQAQACIAAQACAAECFAABCBMCAQgCAwMABQADCCAAL4ABKQMSdQJjLgEEDRpECgABAAIAAokBFAEFHwEAAQIBAgEBBQANAAEDAQsjAwEAAQIVBgERGAAFBwoAAQESAAgAMQUKBQEACAcGAhEAQi4NA8YBABAABAAQCQcIAQMOBQgDKUUCMwEHAVsBAAEAAQEBAS8LDAAbAREBEAILBAEGBgIMBSUAFAEjCgUBHloCASEHAQcOCwcNLAAYDAc2CwAEBA0IcQwpBgIKKwUMFwINKwQGQwETAQIrAh8HxwEMKgQDYhoAAQABAQEBC2UBTgEkAeYBAQQCAAEMswEALgENAQoNFAAssAYBAECaAQEAXe4BAYQFnAPGBPAEAAgAEAQNABAEaQCdFQIZAqgWAE4FAQEOAQUDAQEKAgoIBQAKAAIBCgNQCBgPFQS08oqxBzwAAhkAHQIOAQECAQoFBAEEBAATAAIKAQAIACIDAwoDAAkDBwABAwcXGAIBEwIABA0BEwIHBAMQAAcCLQAHBQ4DDQABAAIAFSwBJw8FBAAWAjoEAQQsAAgAUQIBAQkLAQIBAQ8ACwAIABoBCQADAAYAAgAFAA4AJgDn+trVBHUAARsCBAALADsAC6YCAQkTAgoAIApSAgkDIoUBHgcWAxYDAQMDDQMBHAIEGAEAAQACAAECBQALORQBBRQBDARiWpwNARQBEBoGAVIB7gEVSowBBwgBJwQLEQVgHQwkHQwAAQACAAECGQUCBRsFEgYLAwQCAQIgCw4IAgEaAQkEBgoPAQMCJwIvBQoACwoIBgEtAQQBLxkLAgEBAQEmLwAXAggCCQVAABEELQECCQwAKgAQAgkJIQAoAAMAAQACAAECBADJAT4aAAcEHAIPATAAFgcDAgEWAQABKgFUfhdGDE1FrQQF2gQGAQY2BQEFkwQCCwc=\",\"updateId\":813182184}","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4424,1176],"tags":[],"class_list":["post-122167","post","type-post","status-publish","format-standard","hentry","category-core","category-summaries","mentions-audrasjb","mentions-dmsnell","mentions-peterwilsoncc","mentions-sergeybiryukov","author-johnbillion"],"revision_note":"","jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-vMr","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/122167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/42547"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=122167"}],"version-history":[{"count":6,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/122167\/revisions"}],"predecessor-version":[{"id":122355,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/122167\/revisions\/122355"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=122167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=122167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=122167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}