{"id":35188,"date":"2026-05-06T10:57:00","date_gmt":"2026-05-06T08:57:00","guid":{"rendered":"https:\/\/www.greenuso.com\/blog\/?p=35188"},"modified":"2026-04-29T10:34:00","modified_gmt":"2026-04-29T08:34:00","slug":"sugarcane-packaging","status":"publish","type":"post","link":"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/","title":{"rendered":"Sugarcane Packaging: Sustainability and Ecological Benefits"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Sugarcane packaging<\/strong> offers a sustainable alternative for preserving and transporting food. Made from renewable plant waste, they naturally degrade after use. They are an effective option for those looking to reduce their environmental impact in daily life and catering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sugarcane packaging consists of containers made from bagasse, the plant fiber remaining after extracting juice from the cane to produce sugar. This raw material is an agricultural byproduct, making these packages a sustainable choice as they utilize renewable waste and avoid the use of fossil resources. They have a rigid and natural appearance similar to cardboard but with higher resistance to water and grease. Their common use is for the conservation and transportation of fresh and prepared foods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Brief history and origin of these eco-friendly packages<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The use of sugarcane for packaging arose from the need to <strong>reduce plastic<\/strong> waste and opt for biodegradable solutions. These packages began to be developed in regions with large sugar production and abundant bagasse, mainly in Asian and Latin American countries. Their popularity has grown in Europe in recent years due to increased environmental awareness, plastic restrictions, and sustainability policies in catering and food services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Differences with other types of biodegradable packaging<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Raw material:<\/strong> While sugarcane packaging uses plant bagasse, other biodegradable products are often made from potato starch, PLA (polylactic acid derived from corn), cardboard, or recycled paper.<\/li>\n\n\n\n<li><strong>Properties:<\/strong> Sugarcane packaging is noted for its higher resistance to high temperatures and moisture. Unlike some bioplastics, they can withstand microwaves and ovens.<\/li>\n\n\n\n<li><strong>Degradation:<\/strong> They biodegrade quickly and completely in industrial composting conditions, differentiating themselves from plastic-coated cardboard or bioplastic that may require more specific processes.<\/li>\n\n\n\n<li><strong>Appearance and texture:<\/strong> They offer a rigid texture and natural color, while other biodegradables may be transparent (PLA) or less robust (thin cardboard).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This type of packaging meets the demand for sustainable options without sacrificing functionality and safety in food contact, thus playing a key role in the transition to a circular economy.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Content<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999999;color:#999999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999999;color:#999999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Sugarcane_packaging_manufacturing_process\" >Sugarcane packaging manufacturing process<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Raw_materials_used\" >Raw materials used<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Main_production_stages\" >Main production stages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Achieving_biodegradability\" >Achieving biodegradability<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Advantages_of_sugarcane_packaging\" >Advantages of sugarcane packaging<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Eco-friendly_and_biodegradable\" >Eco-friendly and biodegradable<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Suitable_for_food_use\" >Suitable for food use<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Resistance_to_grease_liquids_and_high_temperatures\" >Resistance to grease, liquids, and high temperatures<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Comparison_with_plastic_and_cardboard_packaging\" >Comparison with plastic and cardboard packaging<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Main_types_of_sugarcane_packaging_and_tableware\" >Main types of sugarcane packaging and tableware<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Uses_and_applications\" >Uses and applications<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Food_preservation_and_transportation\" >Food preservation and transportation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Catering_take-away_and_food_delivery\" >Catering, take-away, and food delivery<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.greenuso.com\/blog\/sugarcane-packaging\/#Ecological_and_sustainable_events\" >Ecological and sustainable events<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sugarcane_packaging_manufacturing_process\"><\/span>Sugarcane packaging manufacturing process<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Raw_materials_used\"><\/span>Raw materials used<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The base of sugarcane packaging is bagasse, the residual plant fiber after juice extraction from the cane. Instead of being discarded, this agricultural byproduct is reused to create a fibrous mass. The process does not add plastics or toxic chemicals, ensuring the material&#8217;s purity and suitability for food contact. Water and some natural additives may be incorporated to improve the cohesion and moldability of the fiber, always following sustainability criteria.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Main_production_stages\"><\/span>Main production stages<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Collection and cleaning of bagasse:<\/strong> After juice extraction, the fiber is cleaned to remove impurities and residues.<\/li>\n\n\n\n<li><strong>Grinding:<\/strong> The bagasse is ground to obtain a homogeneous pulp.<\/li>\n\n\n\n<li><strong>Mixing and kneading:<\/strong> The pulp is mixed with water and sometimes natural additives to enhance resistance and facilitate molding.<\/li>\n\n\n\n<li><strong>Pressure and heat molding:<\/strong> The mixture is placed in molds and subjected to pressure and high temperatures to shape the packaging. This ensures rigidity and the final finish.<\/li>\n\n\n\n<li><strong>Drying and trimming:<\/strong> The product is thoroughly dried, and excess material is removed before moving to quality control.<\/li>\n\n\n\n<li><strong>Packaging:<\/strong> Once its resistance is verified, the packaging is packed for distribution.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Achieving_biodegradability\"><\/span>Achieving biodegradability<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/atriainnovation.com\/en\/blog\/how-to-know-if-a-product-is-biodegradable\/\" data-type=\"link\" data-id=\"https:\/\/atriainnovation.com\/en\/blog\/how-to-know-if-a-product-is-biodegradable\/\" target=\"_blank\" rel=\"noopener\">biodegradability<\/a> of these packages comes from their 100% plant composition, without plastic components. Thanks to the structure of the bagasse and the absence of synthetic coatings, these packages can decompose in a few weeks under industrial composting conditions. The manufacturing process respects the original properties of the fiber so that after use, the packaging becomes organic matter, thus closing the natural cycle and aligning with circular economy principles. Additionally, the absence of toxic elements ensures that after biodegradation, no harmful substances are released into the environment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Advantages_of_sugarcane_packaging\"><\/span>Advantages of sugarcane packaging<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Eco-friendly_and_biodegradable\"><\/span>Eco-friendly and biodegradable<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sugarcane packaging is a more eco-friendly alternative compared to conventional plastics. Their plant origin and the use of bagasse reduce the consumption of fossil resources and utilize agricultural waste. Being completely biodegradable, these packages can break down in a few weeks under industrial composting conditions, becoming organic matter without leaving toxic residues. Thus, they contribute to waste reduction and environmental improvement.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Suitable_for_food_use\"><\/span>Suitable for food use<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">These packages are designed for direct contact with both cold and hot foods. They do not alter the taste or properties of the products they contain and comply with European regulations for food packaging, providing safety and hygiene. The absence of plastics or toxic additives is crucial for their everyday use in the food sector.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Resistance_to_grease_liquids_and_high_temperatures\"><\/span>Resistance to grease, liquids, and high temperatures<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">One of the main advantages of sugarcane packaging is its resistance. The plant fiber is impermeable to grease and liquids, preventing leaks and drips during food transportation. Moreover, they withstand high temperatures, allowing their use in <strong>microwaves and ovens<\/strong>, something uncommon in biodegradable packaging made from other raw materials like cardboard. This resistance ensures their usefulness in take-away, catering, and restaurants.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comparison_with_plastic_and_cardboard_packaging\"><\/span>Comparison with plastic and cardboard packaging<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Against plastic:<\/strong> Sugarcane packaging does not generate microplastics, does not require petroleum, nor releases harmful substances upon degrading. Their renewable composition and capacity to biodegrade represent a significant improvement in waste management.<\/li>\n\n\n\n<li><strong>Against cardboard:<\/strong> They are more resistant, especially in contact with liquids and grease. While cardboard may soften or disintegrate, sugarcane packaging maintains its structure and offers greater versatility at high temperatures.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In summary, choosing sugarcane packaging means opting for a sustainable and safe solution, suitable for food preservation and transportation in a context that increasingly demands environmental responsibility.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Main_types_of_sugarcane_packaging_and_tableware\"><\/span>Main types of sugarcane packaging and tableware<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The variety of products made from sugarcane caters to different needs in food preservation, presentation, and transportation. The following are the most common and versatile options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rectangular containers and trays<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Rectangular containers and trays are the most common solution for individual servings, combo menus, or plate presentation. These packages stand out for their flat bottom and reinforced edges, making handling and storage easier. They are used for both hot and cold meals and are suitable for carry-out.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Containers with one or multiple compartments<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">There are packages designed with one, two, or even three compartments, ideal for separating food within a single package and avoiding the mixing of flavors and textures. This option is common in combo menus, carry-out dishes, or catering trays, ensuring that each food retains all its qualities.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tableware and menu carriers<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The tableware offering includes flat plates, deep plates, bowls, and menu carriers. All these products offer a robust and natural finish, being resistant and suitable for intensive use in events or hospitality services. Menu carriers allow for the safe transportation of complete meals.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"634\" src=\"https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/Captura-de-pantalla-2026-04-29-100547-3.jpg\" alt=\"Sugarcane Food Containers: Sustainable &amp; Durable\" class=\"wp-image-35261\" srcset=\"https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/Captura-de-pantalla-2026-04-29-100547-3.jpg 968w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/Captura-de-pantalla-2026-04-29-100547-3-300x196.jpg 300w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/Captura-de-pantalla-2026-04-29-100547-3-768x503.jpg 768w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Options with lids (PET, PP, and sugarcane)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To increase versatility, many sugarcane packages can incorporate a lid. The lids can be PET (suitable for viewing the contents), PP (more resistant to high temperatures), or even the same plant material, further enhancing the package&#8217;s sustainability and allowing for the secure transportation of liquid or brothy foods.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Different capacities and measurements<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The range includes small trays for tapas or desserts to large-capacity containers for main dishes, complete menus, or large servings. The measurements are adapted to individual portions and family or group presentations. This allows for meeting all needs, from take-away to collective events.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This diversity makes sugarcane packaging adaptable to both hospitality, food retail, and sustainable events, offering ecological and practical solutions for each service format.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Uses_and_applications\"><\/span>Uses and applications<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Food_preservation_and_transportation\"><\/span>Food preservation and transportation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sugarcane packaging allows for the safe preservation of fresh, cooked, or precooked foods, maintaining their quality and flavor. Thanks to their resistant structure, these packages withstand liquids, grease, and sauces without losing their integrity, making them ideal for transporting prepared dishes, hot servings, and complete menus. They are suitable for refrigerators, freezers, microwaves, and ovens, facilitating the storage and reheating of food at various service stages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Catering_take-away_and_food_delivery\"><\/span>Catering, take-away, and food delivery<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the catering sector, sugarcane packaging is commonplace in take-away establishments, delivery services, bars, and catering services. Their functional design and range of formats facilitate the presentation and delivery of meals for both direct consumption and distribution. Additionally, their resistance and ability to maintain the temperature of food contribute to enhancing the customer&#8217;s experience. These packages meet the needs of professional kitchens and small businesses, adapting to the rhythms and demands of modern service.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ecological_and_sustainable_events\"><\/span>Ecological and sustainable events<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For <a href=\"https:\/\/www.greenuso.com\/blog\/blog-3\/?p=33544\" data-type=\"link\" data-id=\"https:\/\/www.greenuso.com\/blog\/biodegradable-miniatures-for-events\/\">celebrations, fairs, and collective events<\/a> committed to sustainability, sugarcane packaging presents the best option to reduce plastic waste and promote responsible practices. They are a respectful solution that, in addition to offering a careful presentation, allows organizers to comply with increasingly demanding environmental regulations. Their ease of composting and natural image enhance the ecological value of any gathering, aligning the organization with a trend of environmental responsibility.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The versatility and functionality of sugarcane packaging make them allies for both the food industry and any initiative requiring safe, hygienic, and sustainable solutions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sugarcane packaging offers a sustainable alternative for preserving and transporting food. Made from renewable plant waste, they naturally degrade after use. They are an effective\u2026<\/p>\n","protected":false},"author":1,"featured_media":35206,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAH8tji0gWCBvEFBrgBvtYCARg8AgECCkpQ6NkCutkCBgQQUkqaAgEBCAImaABIAKwIAQEIAkJIAIgBAQEIAkIASAC2AQEBCAJCAEgAgBABAQgCQgBIAKICAQEIArQBAhrSAgBIALgNAQEIAkIASACiAgEBCABIDgIBAQgCSgC0BgEBCAJKAL4FAQEIAkoAggcBAQgCSsQUqBkBAQgCQgBIAI4GAQEIAkJIAKIBAQEIAkJIADQBAQgCQgBIALYOAQEIAkJIADwBAQgASA4CAQEIAkoAlgQBAQgCSgCqAgEBCAJKAK4EAQEIAkoAigYBAQgCSgCcBAEBCAJK5Ba+GQEBCAJCSACEAQEBCAIIAwAEDgMDagBIAJoTAQEIAkJIAJIBAQEIAkJIAIwBAQEIAkIASACYDgEBCAJCSAA6AQEIAkIASACoCgEBCAJCSAC4AQEBCAKoByjSCABIAIAOAQEIAkJIAK4BAQEIAEgOAgEBCAJKALIIAQEIAkrCCYARAQEIAkIASAC0BgEBCAJCSACuAQEBCAJCAEgAvgUBAQgCQkgAkAEBAQgCQgBIAKwJAQEIAkJIAKgBAQEIAkIASACgCQEBCAJCSACGAQEBCAJCAEgAjgkBAQgCQkgApAEBAQgCQgBIAJIKAQEIAkJIAJoBAQEIAkIASACaCQEBCAJCAEgAtAUBAQgCQkgAOgEBCAJCSACYAQEBCAJCAEgAkg8BAQgCQkgAnAEBAQgCQgBIAIYRAQEIAkJIAJIBAQEIAggDAAQCBAKEAd4BAEgAjBABAQgCQgBI+tACAlAAgAO+hwIEAgCQAZBLAQEIAkrcWAQCAJoBnFgBAQgCStBkBAIAPLhkAQEIAkrCcQQCAJ4BqnABAQgCSsp9BAIAhgGsfQEBCAJK8Ge+aAEBCABICAECuiC2DZpymBOQLL4NvF+0BYRbihDkoAUDAAQOAwOmwgEDAAQCBAKEAZ4ciKEBoq0BuGCWWuaxBSjglQECGu4ivOkGxMQJuNkFuL8BN6DcAiaE\/AHK1wQBCI7WAwMABA4DA6bCAQMABAIEAoQBpr0Boq0BuGDQ1wQo4JUBAhqC3QK4vwHZBigAIQEnAAQAJwABACcAKAYnACgcJwAHACgDJwAoACcAqAEoAagBpwAEACgAhwAoAicBBACEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgBJwCHACgCJwEEACgBJwCHACgCJwEEAIQCKAEnAIcAKAInAQQAKAEnAIcAKAInACgBJwAHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAkoAScAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBACEASgBJwCHACgCJwEEACgAJwCHACgCJwAoAScABwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEAIQHKAEnAIcAKAInAQQAKAEnAKgBKAFEAMQAqAEoAQcAKAInAQQAJwCoASgBBwAoAicBBAAnAKgBKAEHACgCJwEEACcAqAEoAQcAKAInAQQAJwCoASgBBwAoAicBBAAnAMcAKAInACgAJwEoBEQAwQDEAMEAxADBAMQAwQDEAMEAxBKoAMQCKACoAMQEqALE1fYBgfEBc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlU3VnYXJjYW5lIFBhY2thZ2luZzogU3VzdGFpbmFiaWxpdHkgYW5kIEVjb2xvZ2ljYWwgQmVuZWZpdHNkb2N1bWVudGNvbnRlbnRkb2N1bWVudGV4Y2VycHRkb2N1bWVudGF1dGhvcmRvY3VtZW50ZmVhdHVyZWRfbWVkaWFkb2N1bWVudGNvbW1lbnRfc3RhdHVzZG9jdW1lbnRwaW5nX3N0YXR1c2RvY3VtZW50c3RpY2t5ZG9jdW1lbnR0ZW1wbGF0ZWRvY3VtZW50Zm9ybWF0ZG9jdW1lbnRtZXRhc2l0ZS1zaWRlYmFyLWxheW91dHNpdGUtY29udGVudC1sYXlvdXRhc3Qtc2l0ZS1jb250ZW50LWxheW91dHNpdGUtY29udGVudC1zdHlsZXNpdGUtc2lkZWJhci1zdHlsZWFzdC1nbG9iYWwtaGVhZGVyLWRpc3BsYXlhc3QtYmFubmVyLXRpdGxlLXZpc2liaWxpdHlhc3QtbWFpbi1oZWFkZXItZGlzcGxheWFzdC1oZmItYWJvdmUtaGVhZGVyLWRpc3BsYXlhc3QtaGZiLWJlbG93LWhlYWRlci1kaXNwbGF5YXN0LWhmYi1tb2JpbGUtaGVhZGVyLWRpc3BsYXlzaXRlLXBvc3QtdGl0bGVhc3QtYnJlYWRjcnVtYnMtY29udGVudGFzdC1mZWF0dXJlZC1pbWdmb290ZXItc21sLWxheW91dGFzdC1kaXNhYmxlLXJlbGF0ZWQtcG9zdHN0aGVtZS10cmFuc3BhcmVudC1oZWFkZXItbWV0YWFkdi1oZWFkZXItaWQtbWV0YXN0aWNrLWhlYWRlci1tZXRhaGVhZGVyLWFib3ZlLXN0aWNrLW1ldGFoZWFkZXItbWFpbi1zdGljay1tZXRhaGVhZGVyLWJlbG93LXN0aWNrLW1ldGFhc3RyYS1taWdyYXRlLW1ldGEtbGF5b3V0c2FzdC1wYWdlLWJhY2tncm91bmQtZW5hYmxlZGFzdC1wYWdlLWJhY2tncm91bmQtbWV0YWFzdC1jb250ZW50LWJhY2tncm91bmQtbWV0YWZvb3Rub3Rlc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50aW5uZXJCbG9ja3NzdGF0ZXNhdmVkQXRzdGF0ZXNhdmVkQnlTdWdhcmNhbmUgUGFja2FnaW5nOiBTdXN0YWluYWJpbGl0eSBhbmQgRWNvbG9naWNhbCBBZHZhbnRhZ2VzbGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRTdWdhcmNhbmUgcGFja2FnaW5nIG9mZmVycyBhIHN1c3RhaW5hYmxlIGFsdGVybmF0aXZlIGZvciBwcmVzZXJ2aW5nIGFuZCB0cmFuc3BvcnRpbmcgZm9vZC4gTWFkZSBmcm9tIHJlbmV3YWJsZSBwbGFudCB3YXN0ZSwgdGhleSBuYXR1cmFsbHkgZGVncmFkZSBhZnRlciB1c2UuIFRoZXkgYXJlIGFuIGVmZmVjdGl2ZSBvcHRpb24gZm9yIHRob3NlIGxvb2tpbmcgdG8gcmVkdWNlIHRoZWlyIGVudmlyb25tZW50YWwgaW1wYWN0IGluIGRhaWx5IGxpZmUgYW5kIGNhdGVyaW5nLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50V2hhdCBpcyBzdWdhcmNhbmUgcGFja2FnaW5nP2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkRlZmluaXRpb24gb2Ygc3VnYXJjYW5lIHBhY2thZ2luZzwvc3Ryb25nPmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3VnYXJjYW5lIHBhY2thZ2luZyBjb25zaXN0cyBvZiBjb250YWluZXJzIG1hZGUgZnJvbSBiYWdhc3NlLCB0aGUgcGxhbnQgZmliZXIgcmVtYWluaW5nIGFmdGVyIGV4dHJhY3RpbmcganVpY2UgZnJvbSB0aGUgY2FuZSB0byBwcm9kdWNlIHN1Z2FyLiBUaGlzIHJhdyBtYXRlcmlhbCBpcyBhbiBhZ3JpY3VsdHVyYWwgYnlwcm9kdWN0LCBtYWtpbmcgdGhlc2UgcGFja2FnZXMgYSBzdXN0YWluYWJsZSBjaG9pY2UgYXMgdGhleSB1dGlsaXplIHJlbmV3YWJsZSB3YXN0ZSBhbmQgYXZvaWQgdGhlIHVzZSBvZiBmb3NzaWwgcmVzb3VyY2VzLiBUaGV5IGhhdmUgYSByaWdpZCBhbmQgbmF0dXJhbCBhcHBlYXJhbmNlIHNpbWlsYXIgdG8gY2FyZGJvYXJkIGJ1dCB3aXRoIGhpZ2hlciByZXNpc3RhbmNlIHRvIHdhdGVyIGFuZCBncmVhc2UuIFRoZWlyIGNvbW1vbiB1c2UgaXMgZm9yIHRoZSBjb25zZXJ2YXRpb24gYW5kIHRyYW5zcG9ydGF0aW9uIG9mIGZyZXNoIGFuZCBwcmVwYXJlZCBmb29kcy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+QnJpZWYgaGlzdG9yeSBhbmQgb3JpZ2luIG9mIHRoZXNlIGVjby1mcmllbmRseSBwYWNrYWdlczwvc3Ryb25nPmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIHVzZSBvZiBzdWdhcmNhbmUgZm9yIHBhY2thZ2luZyBhcm9zZSBmcm9tIHRoZSBuZWVkIHRvIHJlZHVjZSBwbGFzdGljIHdhc3RlIGFuZCBvcHQgZm9yIGJpb2RlZ3JhZGFibGUgc29sdXRpb25zLiBUaGVzZSBwYWNrYWdlcyBiZWdhbiB0byBiZSBkZXZlbG9wZWQgaW4gcmVnaW9ucyB3aXRoIGxhcmdlIHN1Z2FyIHByb2R1Y3Rpb24gYW5kIGFidW5kYW50IGJhZ2Fzc2UsIG1haW5seSBpbiBBc2lhbiBhbmQgTGF0aW4gQW1lcmljYW4gY291bnRyaWVzLiBUaGVpciBwb3B1bGFyaXR5IGhhcyBncm93biBpbiBFdXJvcGUgaW4gcmVjZW50IHllYXJzIGR1ZSB0byBpbmNyZWFzZWQgZW52aXJvbm1lbnRhbCBhd2FyZW5lc3MsIHBsYXN0aWMgcmVzdHJpY3Rpb25zLCBhbmQgc3VzdGFpbmFiaWxpdHkgcG9saWNpZXMgaW4gY2F0ZXJpbmcgYW5kIGZvb2Qgc2VydmljZXMuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkRpZmZlcmVuY2VzIHdpdGggb3RoZXIgdHlwZXMgb2YgYmlvZGVncmFkYWJsZSBwYWNrYWdpbmc8L3N0cm9uZz5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5SYXcgbWF0ZXJpYWw6PC9zdHJvbmc+IFdoaWxlIHN1Z2FyY2FuZSBwYWNrYWdpbmcgdXNlcyBwbGFudCBiYWdhc3NlLCBvdGhlciBiaW9kZWdyYWRhYmxlIHByb2R1Y3RzIGFyZSBvZnRlbiBtYWRlIGZyb20gcG90YXRvIHN0YXJjaCwgUExBIChwb2x5bGFjdGljIGFjaWQgZGVyaXZlZCBmcm9tIGNvcm4pLCBjYXJkYm9hcmQsIG9yIHJlY3ljbGVkIHBhcGVyLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Qcm9wZXJ0aWVzOjwvc3Ryb25nPiBTdWdhcmNhbmUgcGFja2FnaW5nIGlzIG5vdGVkIGZvciBpdHMgaGlnaGVyIHJlc2lzdGFuY2UgdG8gaGlnaCB0ZW1wZXJhdHVyZXMgYW5kIG1vaXN0dXJlLiBVbmxpa2Ugc29tZSBiaW9wbGFzdGljcywgdGhleSBjYW4gd2l0aHN0YW5kIG1pY3Jvd2F2ZXMgYW5kIG92ZW5zLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5EZWdyYWRhdGlvbjo8L3N0cm9uZz4gVGhleSBiaW9kZWdyYWRlIHF1aWNrbHkgYW5kIGNvbXBsZXRlbHkgaW4gaW5kdXN0cmlhbCBjb21wb3N0aW5nIGNvbmRpdGlvbnMsIGRpZmZlcmVudGlhdGluZyB0aGVtc2VsdmVzIGZyb20gcGxhc3RpYy1jb2F0ZWQgY2FyZGJvYXJkIG9yIGJpb3BsYXN0aWMgdGhhdCBtYXkgcmVxdWlyZSBtb3JlIHNwZWNpZmljIHByb2Nlc3Nlcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+QXBwZWFyYW5jZSBhbmQgdGV4dHVyZTo8L3N0cm9uZz4gVGhleSBvZmZlciBhIHJpZ2lkIHRleHR1cmUgYW5kIG5hdHVyYWwgY29sb3IsIHdoaWxlIG90aGVyIGJpb2RlZ3JhZGFibGVzIG1heSBiZSB0cmFuc3BhcmVudCAoUExBKSBvciBsZXNzIHJvYnVzdCAodGhpbiBjYXJkYm9hcmQpLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhpcyB0eXBlIG9mIHBhY2thZ2luZyBtZWV0cyB0aGUgZGVtYW5kIGZvciBzdXN0YWluYWJsZSBvcHRpb25zIHdpdGhvdXQgc2FjcmlmaWNpbmcgZnVuY3Rpb25hbGl0eSBhbmQgc2FmZXR5IGluIGZvb2QgY29udGFjdCwgdGh1cyBwbGF5aW5nIGEga2V5IHJvbGUgaW4gdGhlIHRyYW5zaXRpb24gdG8gYSBjaXJjdWxhciBlY29ub215LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3VnYXJjYW5lIHBhY2thZ2luZyBtYW51ZmFjdHVyaW5nIHByb2Nlc3NsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmF3IG1hdGVyaWFscyB1c2VkbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBiYXNlIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgYmFnYXNzZSwgdGhlIHJlc2lkdWFsIHBsYW50IGZpYmVyIGFmdGVyIGp1aWNlIGV4dHJhY3Rpb24gZnJvbSB0aGUgY2FuZS4gSW5zdGVhZCBvZiBiZWluZyBkaXNjYXJkZWQsIHRoaXMgYWdyaWN1bHR1cmFsIGJ5cHJvZHVjdCBpcyByZXVzZWQgdG8gY3JlYXRlIGEgZmlicm91cyBtYXNzLiBUaGUgcHJvY2VzcyBkb2VzIG5vdCBhZGQgcGxhc3RpY3Mgb3IgdG94aWMgY2hlbWljYWxzLCBlbnN1cmluZyB0aGUgbWF0ZXJpYWwncyBwdXJpdHkgYW5kIHN1aXRhYmlsaXR5IGZvciBmb29kIGNvbnRhY3QuIFdhdGVyIGFuZCBzb21lIG5hdHVyYWwgYWRkaXRpdmVzIG1heSBiZSBpbmNvcnBvcmF0ZWQgdG8gaW1wcm92ZSB0aGUgY29oZXNpb24gYW5kIG1vbGRhYmlsaXR5IG9mIHRoZSBmaWJlciwgYWx3YXlzIGZvbGxvd2luZyBzdXN0YWluYWJpbGl0eSBjcml0ZXJpYS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE1haW4gcHJvZHVjdGlvbiBzdGFnZXNsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkNvbGxlY3Rpb24gYW5kIGNsZWFuaW5nIG9mIGJhZ2Fzc2U6PC9zdHJvbmc+IEFmdGVyIGp1aWNlIGV4dHJhY3Rpb24sIHRoZSBmaWJlciBpcyBjbGVhbmVkIHRvIHJlbW92ZSBpbXB1cml0aWVzIGFuZCByZXNpZHVlcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+R3JpbmRpbmc6PC9zdHJvbmc+IFRoZSBiYWdhc3NlIGlzIGdyb3VuZCB0byBvYnRhaW4gYSBob21vZ2VuZW91cyBwdWxwLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NaXhpbmcgYW5kIGtuZWFkaW5nOjwvc3Ryb25nPiBUaGUgcHVscCBpcyBtaXhlZCB3aXRoIHdhdGVyIGFuZCBzb21ldGltZXMgbmF0dXJhbCBhZGRpdGl2ZXMgdG8gZW5oYW5jZSByZXNpc3RhbmNlIGFuZCBmYWNpbGl0YXRlIG1vbGRpbmcuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlByZXNzdXJlIGFuZCBoZWF0IG1vbGRpbmc6PC9zdHJvbmc+IFRoZSBtaXh0dXJlIGlzIHBsYWNlZCBpbiBtb2xkcyBhbmQgc3ViamVjdGVkIHRvIHByZXNzdXJlIGFuZCBoaWdoIHRlbXBlcmF0dXJlcyB0byBzaGFwZSB0aGUgcGFja2FnaW5nLiBUaGlzIGVuc3VyZXMgcmlnaWRpdHkgYW5kIHRoZSBmaW5hbCBmaW5pc2guaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkRyeWluZyBhbmQgdHJpbW1pbmc6PC9zdHJvbmc+IFRoZSBwcm9kdWN0IGlzIHRob3JvdWdobHkgZHJpZWQsIGFuZCBleGNlc3MgbWF0ZXJpYWwgaXMgcmVtb3ZlZCBiZWZvcmUgbW92aW5nIHRvIHF1YWxpdHkgY29udHJvbC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+UGFja2FnaW5nOjwvc3Ryb25nPiBPbmNlIGl0cyByZXNpc3RhbmNlIGlzIHZlcmlmaWVkLCB0aGUgcGFja2FnaW5nIGlzIHBhY2tlZCBmb3IgZGlzdHJpYnV0aW9uLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QWNoaWV2aW5nIGJpb2RlZ3JhZGFiaWxpdHlsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGJpb2RlZ3JhZGFiaWxpdHkgb2YgdGhlc2UgcGFja2FnZXMgY29tZXMgZnJvbSB0aGVpciAxMDAlIHBsYW50IGNvbXBvc2l0aW9uLCB3aXRob3V0IHBsYXN0aWMgY29tcG9uZW50cy4gVGhhbmtzIHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGJhZ2Fzc2UgYW5kIHRoZSBhYnNlbmNlIG9mIHN5bnRoZXRpYyBjb2F0aW5ncywgdGhlc2UgcGFja2FnZXMgY2FuIGRlY29tcG9zZSBpbiBhIGZldyB3ZWVrcyB1bmRlciBpbmR1c3RyaWFsIGNvbXBvc3RpbmcgY29uZGl0aW9ucy4gVGhlIG1hbnVmYWN0dXJpbmcgcHJvY2VzcyByZXNwZWN0cyB0aGUgb3JpZ2luYWwgcHJvcGVydGllcyBvZiB0aGUgZmliZXIgc28gdGhhdCBhZnRlciB1c2UsIHRoZSBwYWNrYWdpbmcgYmVjb21lcyBvcmdhbmljIG1hdHRlciwgdGh1cyBjbG9zaW5nIHRoZSBuYXR1cmFsIGN5Y2xlIGFuZCBhbGlnbmluZyB3aXRoIGNpcmN1bGFyIGVjb25vbXkgcHJpbmNpcGxlcy4gQWRkaXRpb25hbGx5LCB0aGUgYWJzZW5jZSBvZiB0b3hpYyBlbGVtZW50cyBlbnN1cmVzIHRoYXQgYWZ0ZXIgYmlvZGVncmFkYXRpb24sIG5vIGhhcm1mdWwgc3Vic3RhbmNlcyBhcmUgcmVsZWFzZWQgaW50byB0aGUgZW52aXJvbm1lbnQuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBZHZhbnRhZ2VzIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmdsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RWNvLWZyaWVuZGx5IGFuZCBiaW9kZWdyYWRhYmxlbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgYSBtb3JlIGVjby1mcmllbmRseSBhbHRlcm5hdGl2ZSBjb21wYXJlZCB0byBjb252ZW50aW9uYWwgcGxhc3RpY3MuIFRoZWlyIHBsYW50IG9yaWdpbiBhbmQgdGhlIHVzZSBvZiBiYWdhc3NlIHJlZHVjZSB0aGUgY29uc3VtcHRpb24gb2YgZm9zc2lsIHJlc291cmNlcyBhbmQgdXRpbGl6ZSBhZ3JpY3VsdHVyYWwgd2FzdGUuIEJlaW5nIGNvbXBsZXRlbHkgYmlvZGVncmFkYWJsZSwgdGhlc2UgcGFja2FnZXMgY2FuIGJyZWFrIGRvd24gaW4gYSBmZXcgd2Vla3MgdW5kZXIgaW5kdXN0cmlhbCBjb21wb3N0aW5nIGNvbmRpdGlvbnMsIGJlY29taW5nIG9yZ2FuaWMgbWF0dGVyIHdpdGhvdXQgbGVhdmluZyB0b3hpYyByZXNpZHVlcy4gVGh1cywgdGhleSBjb250cmlidXRlIHRvIHdhc3RlIHJlZHVjdGlvbiBhbmQgZW52aXJvbm1lbnRhbCBpbXByb3ZlbWVudC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFN1aXRhYmxlIGZvciBmb29kIHVzZWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGVzZSBwYWNrYWdlcyBhcmUgZGVzaWduZWQgZm9yIGRpcmVjdCBjb250YWN0IHdpdGggYm90aCBjb2xkIGFuZCBob3QgZm9vZHMuIFRoZXkgZG8gbm90IGFsdGVyIHRoZSB0YXN0ZSBvciBwcm9wZXJ0aWVzIG9mIHRoZSBwcm9kdWN0cyB0aGV5IGNvbnRhaW4gYW5kIGNvbXBseSB3aXRoIEV1cm9wZWFuIHJlZ3VsYXRpb25zIGZvciBmb29kIHBhY2thZ2luZywgcHJvdmlkaW5nIHNhZmV0eSBhbmQgaHlnaWVuZS4gVGhlIGFic2VuY2Ugb2YgcGxhc3RpY3Mgb3IgdG94aWMgYWRkaXRpdmVzIGlzIGNydWNpYWwgZm9yIHRoZWlyIGV2ZXJ5ZGF5IHVzZSBpbiB0aGUgZm9vZCBzZWN0b3IuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSZXNpc3RhbmNlIHRvIGdyZWFzZSwgbGlxdWlkcywgYW5kIGhpZ2ggdGVtcGVyYXR1cmVzbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE9uZSBvZiB0aGUgbWFpbiBhZHZhbnRhZ2VzIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgaXRzIHJlc2lzdGFuY2UuIFRoZSBwbGFudCBmaWJlciBpcyBpbXBlcm1lYWJsZSB0byBncmVhc2UgYW5kIGxpcXVpZHMsIHByZXZlbnRpbmcgbGVha3MgYW5kIGRyaXBzIGR1cmluZyBmb29kIHRyYW5zcG9ydGF0aW9uLiBNb3Jlb3ZlciwgdGhleSB3aXRoc3RhbmQgaGlnaCB0ZW1wZXJhdHVyZXMsIGFsbG93aW5nIHRoZWlyIHVzZSBpbiBtaWNyb3dhdmVzIGFuZCBvdmVucywgc29tZXRoaW5nIHVuY29tbW9uIGluIGJpb2RlZ3JhZGFibGUgcGFja2FnaW5nIG1hZGUgZnJvbSBvdGhlciByYXcgbWF0ZXJpYWxzIGxpa2UgY2FyZGJvYXJkLiBUaGlzIHJlc2lzdGFuY2UgZW5zdXJlcyB0aGVpciB1c2VmdWxuZXNzIGluIHRha2UtYXdheSwgY2F0ZXJpbmcsIGFuZCByZXN0YXVyYW50cy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudENvbXBhcmlzb24gd2l0aCBwbGFzdGljIGFuZCBjYXJkYm9hcmQgcGFja2FnaW5nbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5BZ2FpbnN0IHBsYXN0aWM6PC9zdHJvbmc+IFN1Z2FyY2FuZSBwYWNrYWdpbmcgZG9lcyBub3QgZ2VuZXJhdGUgbWljcm9wbGFzdGljcywgZG9lcyBub3QgcmVxdWlyZSBwZXRyb2xldW0sIG5vciByZWxlYXNlcyBoYXJtZnVsIHN1YnN0YW5jZXMgdXBvbiBkZWdyYWRpbmcuIFRoZWlyIHJlbmV3YWJsZSBjb21wb3NpdGlvbiBhbmQgY2FwYWNpdHkgdG8gYmlvZGVncmFkZSByZXByZXNlbnQgYSBzaWduaWZpY2FudCBpbXByb3ZlbWVudCBpbiB3YXN0ZSBtYW5hZ2VtZW50LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5BZ2FpbnN0IGNhcmRib2FyZDo8L3N0cm9uZz4gVGhleSBhcmUgbW9yZSByZXNpc3RhbnQsIGVzcGVjaWFsbHkgaW4gY29udGFjdCB3aXRoIGxpcXVpZHMgYW5kIGdyZWFzZS4gV2hpbGUgY2FyZGJvYXJkIG1heSBzb2Z0ZW4gb3IgZGlzaW50ZWdyYXRlLCBzdWdhcmNhbmUgcGFja2FnaW5nIG1haW50YWlucyBpdHMgc3RydWN0dXJlIGFuZCBvZmZlcnMgZ3JlYXRlciB2ZXJzYXRpbGl0eSBhdCBoaWdoIHRlbXBlcmF0dXJlcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEluIHN1bW1hcnksIGNob29zaW5nIHN1Z2FyY2FuZSBwYWNrYWdpbmcgbWVhbnMgb3B0aW5nIGZvciBhIHN1c3RhaW5hYmxlIGFuZCBzYWZlIHNvbHV0aW9uLCBzdWl0YWJsZSBmb3IgZm9vZCBwcmVzZXJ2YXRpb24gYW5kIHRyYW5zcG9ydGF0aW9uIGluIGEgY29udGV4dCB0aGF0IGluY3JlYXNpbmdseSBkZW1hbmRzIGVudmlyb25tZW50YWwgcmVzcG9uc2liaWxpdHkuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYWluIHR5cGVzIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgYW5kIHRhYmxld2FyZWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgdmFyaWV0eSBvZiBwcm9kdWN0cyBtYWRlIGZyb20gc3VnYXJjYW5lIGNhdGVycyB0byBkaWZmZXJlbnQgbmVlZHMgaW4gZm9vZCBwcmVzZXJ2YXRpb24sIHByZXNlbnRhdGlvbiwgYW5kIHRyYW5zcG9ydGF0aW9uLiBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbW9zdCBjb21tb24gYW5kIHZlcnNhdGlsZSBvcHRpb25zOmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmVjdGFuZ3VsYXIgY29udGFpbmVycyBhbmQgdHJheXNsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmVjdGFuZ3VsYXIgY29udGFpbmVycyBhbmQgdHJheXMgYXJlIHRoZSBtb3N0IGNvbW1vbiBzb2x1dGlvbiBmb3IgaW5kaXZpZHVhbCBzZXJ2aW5ncywgY29tYm8gbWVudXMsIG9yIHBsYXRlIHByZXNlbnRhdGlvbi4gVGhlc2UgcGFja2FnZXMgc3RhbmQgb3V0IGZvciB0aGVpciBmbGF0IGJvdHRvbSBhbmQgcmVpbmZvcmNlZCBlZGdlcywgbWFraW5nIGhhbmRsaW5nIGFuZCBzdG9yYWdlIGVhc2llci4gVGhleSBhcmUgdXNlZCBmb3IgYm90aCBob3QgYW5kIGNvbGQgbWVhbHMgYW5kIGFyZSBzdWl0YWJsZSBmb3IgY2Fycnktb3V0LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q29udGFpbmVycyB3aXRoIG9uZSBvciBtdWx0aXBsZSBjb21wYXJ0bWVudHNsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlcmUgYXJlIHBhY2thZ2VzIGRlc2lnbmVkIHdpdGggb25lLCB0d28sIG9yIGV2ZW4gdGhyZWUgY29tcGFydG1lbnRzLCBpZGVhbCBmb3Igc2VwYXJhdGluZyBmb29kIHdpdGhpbiBhIHNpbmdsZSBwYWNrYWdlIGFuZCBhdm9pZGluZyB0aGUgbWl4aW5nIG9mIGZsYXZvcnMgYW5kIHRleHR1cmVzLiBUaGlzIG9wdGlvbiBpcyBjb21tb24gaW4gY29tYm8gbWVudXMsIGNhcnJ5LW91dCBkaXNoZXMsIG9yIGNhdGVyaW5nIHRyYXlzLCBlbnN1cmluZyB0aGF0IGVhY2ggZm9vZCByZXRhaW5zIGFsbCBpdHMgcXVhbGl0aWVzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGFibGV3YXJlIGFuZCBtZW51IGNhcnJpZXJzbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSB0YWJsZXdhcmUgb2ZmZXJpbmcgaW5jbHVkZXMgZmxhdCBwbGF0ZXMsIGRlZXAgcGxhdGVzLCBib3dscywgYW5kIG1lbnUgY2FycmllcnMuIEFsbCB0aGVzZSBwcm9kdWN0cyBvZmZlciBhIHJvYnVzdCBhbmQgbmF0dXJhbCBmaW5pc2gsIGJlaW5nIHJlc2lzdGFudCBhbmQgc3VpdGFibGUgZm9yIGludGVuc2l2ZSB1c2UgaW4gZXZlbnRzIG9yIGhvc3BpdGFsaXR5IHNlcnZpY2VzLiBNZW51IGNhcnJpZXJzIGFsbG93IGZvciB0aGUgc2FmZSB0cmFuc3BvcnRhdGlvbiBvZiBjb21wbGV0ZSBtZWFscy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE9wdGlvbnMgd2l0aCBsaWRzIChQRVQsIFBQLCBhbmQgc3VnYXJjYW5lKWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUbyBpbmNyZWFzZSB2ZXJzYXRpbGl0eSwgbWFueSBzdWdhcmNhbmUgcGFja2FnZXMgY2FuIGluY29ycG9yYXRlIGEgbGlkLiBUaGUgbGlkcyBjYW4gYmUgUEVUIChzdWl0YWJsZSBmb3Igdmlld2luZyB0aGUgY29udGVudHMpLCBQUCAobW9yZSByZXNpc3RhbnQgdG8gaGlnaCB0ZW1wZXJhdHVyZXMpLCBvciBldmVuIHRoZSBzYW1lIHBsYW50IG1hdGVyaWFsLCBmdXJ0aGVyIGVuaGFuY2luZyB0aGUgcGFja2FnZSdzIHN1c3RhaW5hYmlsaXR5IGFuZCBhbGxvd2luZyBmb3IgdGhlIHNlY3VyZSB0cmFuc3BvcnRhdGlvbiBvZiBsaXF1aWQgb3IgYnJvdGh5IGZvb2RzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RGlmZmVyZW50IGNhcGFjaXRpZXMgYW5kIG1lYXN1cmVtZW50c2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgcmFuZ2UgaW5jbHVkZXMgc21hbGwgdHJheXMgZm9yIHRhcGFzIG9yIGRlc3NlcnRzIHRvIGxhcmdlLWNhcGFjaXR5IGNvbnRhaW5lcnMgZm9yIG1haW4gZGlzaGVzLCBjb21wbGV0ZSBtZW51cywgb3IgbGFyZ2Ugc2VydmluZ3MuIFRoZSBtZWFzdXJlbWVudHMgYXJlIGFkYXB0ZWQgdG8gaW5kaXZpZHVhbCBwb3J0aW9ucyBhbmQgZmFtaWx5IG9yIGdyb3VwIHByZXNlbnRhdGlvbnMuIFRoaXMgYWxsb3dzIGZvciBtZWV0aW5nIGFsbCBuZWVkcywgZnJvbSB0YWtlLWF3YXkgdG8gY29sbGVjdGl2ZSBldmVudHMuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGlzIGRpdmVyc2l0eSBtYWtlcyBzdWdhcmNhbmUgcGFja2FnaW5nIGFkYXB0YWJsZSB0byBib3RoIGhvc3BpdGFsaXR5LCBmb29kIHJldGFpbCwgYW5kIHN1c3RhaW5hYmxlIGV2ZW50cywgb2ZmZXJpbmcgZWNvbG9naWNhbCBhbmQgcHJhY3RpY2FsIHNvbHV0aW9ucyBmb3IgZWFjaCBzZXJ2aWNlIGZvcm1hdC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZXMgYW5kIGFwcGxpY2F0aW9uc2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb29kIHByZXNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb25sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3VnYXJjYW5lIHBhY2thZ2luZyBhbGxvd3MgZm9yIHRoZSBzYWZlIHByZXNlcnZhdGlvbiBvZiBmcmVzaCwgY29va2VkLCBvciBwcmVjb29rZWQgZm9vZHMsIG1haW50YWluaW5nIHRoZWlyIHF1YWxpdHkgYW5kIGZsYXZvci4gVGhhbmtzIHRvIHRoZWlyIHJlc2lzdGFudCBzdHJ1Y3R1cmUsIHRoZXNlIHBhY2thZ2VzIHdpdGhzdGFuZCBsaXF1aWRzLCBncmVhc2UsIGFuZCBzYXVjZXMgd2l0aG91dCBsb3NpbmcgdGhlaXIgaW50ZWdyaXR5LCBtYWtpbmcgdGhlbSBpZGVhbCBmb3IgdHJhbnNwb3J0aW5nIHByZXBhcmVkIGRpc2hlcywgaG90IHNlcnZpbmdzLCBhbmQgY29tcGxldGUgbWVudXMuIFRoZXkgYXJlIHN1aXRhYmxlIGZvciByZWZyaWdlcmF0b3JzLCBmcmVlemVycywgbWljcm93YXZlcywgYW5kIG92ZW5zLCBmYWNpbGl0YXRpbmcgdGhlIHN0b3JhZ2UgYW5kIHJlaGVhdGluZyBvZiBmb29kIGF0IHZhcmlvdXMgc2VydmljZSBzdGFnZXMuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDYXRlcmluZywgdGFrZS1hd2F5LCBhbmQgZm9vZCBkZWxpdmVyeWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbiB0aGUgY2F0ZXJpbmcgc2VjdG9yLCBzdWdhcmNhbmUgcGFja2FnaW5nIGlzIGNvbW1vbnBsYWNlIGluIHRha2UtYXdheSBlc3RhYmxpc2htZW50cywgZGVsaXZlcnkgc2VydmljZXMsIGJhcnMsIGFuZCBjYXRlcmluZyBzZXJ2aWNlcy4gVGhlaXIgZnVuY3Rpb25hbCBkZXNpZ24gYW5kIHJhbmdlIG9mIGZvcm1hdHMgZmFjaWxpdGF0ZSB0aGUgcHJlc2VudGF0aW9uIGFuZCBkZWxpdmVyeSBvZiBtZWFscyBmb3IgYm90aCBkaXJlY3QgY29uc3VtcHRpb24gYW5kIGRpc3RyaWJ1dGlvbi4gQWRkaXRpb25hbGx5LCB0aGVpciByZXNpc3RhbmNlIGFuZCBhYmlsaXR5IHRvIG1haW50YWluIHRoZSB0ZW1wZXJhdHVyZSBvZiBmb29kIGNvbnRyaWJ1dGUgdG8gZW5oYW5jaW5nIHRoZSBjdXN0b21lcidzIGV4cGVyaWVuY2UuIFRoZXNlIHBhY2thZ2VzIG1lZXQgdGhlIG5lZWRzIG9mIHByb2Zlc3Npb25hbCBraXRjaGVucyBhbmQgc21hbGwgYnVzaW5lc3NlcywgYWRhcHRpbmcgdG8gdGhlIHJoeXRobXMgYW5kIGRlbWFuZHMgb2YgbW9kZXJuIHNlcnZpY2UuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRFY29sb2dpY2FsIGFuZCBzdXN0YWluYWJsZSBldmVudHNsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Rm9yIGNlbGVicmF0aW9ucywgZmFpcnMsIGFuZCBjb2xsZWN0aXZlIGV2ZW50cyBjb21taXR0ZWQgdG8gc3VzdGFpbmFiaWxpdHksIHN1Z2FyY2FuZSBwYWNrYWdpbmcgcHJlc2VudHMgdGhlIGJlc3Qgb3B0aW9uIHRvIHJlZHVjZSBwbGFzdGljIHdhc3RlIGFuZCBwcm9tb3RlIHJlc3BvbnNpYmxlIHByYWN0aWNlcy4gVGhleSBhcmUgYSByZXNwZWN0ZnVsIHNvbHV0aW9uIHRoYXQsIGluIGFkZGl0aW9uIHRvIG9mZmVyaW5nIGEgY2FyZWZ1bCBwcmVzZW50YXRpb24sIGFsbG93cyBvcmdhbml6ZXJzIHRvIGNvbXBseSB3aXRoIGluY3JlYXNpbmdseSBkZW1hbmRpbmcgZW52aXJvbm1lbnRhbCByZWd1bGF0aW9ucy4gVGhlaXIgZWFzZSBvZiBjb21wb3N0aW5nIGFuZCBuYXR1cmFsIGltYWdlIGVuaGFuY2UgdGhlIGVjb2xvZ2ljYWwgdmFsdWUgb2YgYW55IGdhdGhlcmluZywgYWxpZ25pbmcgdGhlIG9yZ2FuaXphdGlvbiB3aXRoIGEgdHJlbmQgb2YgZW52aXJvbm1lbnRhbCByZXNwb25zaWJpbGl0eS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSB2ZXJzYXRpbGl0eSBhbmQgZnVuY3Rpb25hbGl0eSBvZiBzdWdhcmNhbmUgcGFja2FnaW5nIG1ha2UgdGhlbSBhbGxpZXMgZm9yIGJvdGggdGhlIGZvb2QgaW5kdXN0cnkgYW5kIGFueSBpbml0aWF0aXZlIHJlcXVpcmluZyBzYWZlLCBoeWdpZW5pYywgYW5kIHN1c3RhaW5hYmxlIHNvbHV0aW9ucy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2Ryb3BDYXBwbGFjZWhvbGRlcjxzdHJvbmc+PC9zdHJvbmc+b3JkZXJlZHZhbHVlc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudERpZmZlcmVudCBjYXBhY2l0aWVzIGFuZCBtZWFzdXJlbWVudHNpbm5lckJsb2Nrc29yZGVyZWR2YWx1ZXNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPcHRpb25zIHdpdGggbGlkcyAoUEVULCBQUCwgYW5kIHN1Z2FyY2FuZSlpbm5lckJsb2Nrc29yZGVyZWR2YWx1ZXNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUYWJsZXdhcmUgYW5kIG1lbnUgY2FycmllcnNpbm5lckJsb2Nrc29yZGVyZWR2YWx1ZXNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb250YWluZXJzIHdpdGggb25lIG9yIG11bHRpcGxlIGNvbXBhcnRtZW50c2lubmVyQmxvY2tzb3JkZXJlZHZhbHVlc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJlY3Rhbmd1bGFyIGNvbnRhaW5lcnMgYW5kIHRyYXlzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2FsdGNhcHRpb25pbm5lckJsb2Nrc2lkbGlua3VybHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+U3VnYXJjYW5lIHBhY2thZ2luZzwvc3Ryb25nPiBvZmZlcnMgYSBzdXN0YWluYWJsZSBhbHRlcm5hdGl2ZSBmb3IgcHJlc2VydmluZyBhbmQgdHJhbnNwb3J0aW5nIGZvb2QuIE1hZGUgZnJvbSByZW5ld2FibGUgcGxhbnQgd2FzdGUsIHRoZXkgbmF0dXJhbGx5IGRlZ3JhZGUgYWZ0ZXIgdXNlLiBUaGV5IGFyZSBhbiBlZmZlY3RpdmUgb3B0aW9uIGZvciB0aG9zZSBsb29raW5nIHRvIHJlZHVjZSB0aGVpciBlbnZpcm9ubWVudGFsIGltcGFjdCBpbiBkYWlseSBsaWZlIGFuZCBjYXRlcmluZy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGNvbnNpc3RzIG9mIGNvbnRhaW5lcnMgbWFkZSBmcm9tIGJhZ2Fzc2UsIHRoZSBwbGFudCBmaWJlciByZW1haW5pbmcgYWZ0ZXIgZXh0cmFjdGluZyBqdWljZSBmcm9tIHRoZSBjYW5lIHRvIHByb2R1Y2Ugc3VnYXIuIFRoaXMgcmF3IG1hdGVyaWFsIGlzIGFuIGFncmljdWx0dXJhbCBieXByb2R1Y3QsIG1ha2luZyB0aGVzZSBwYWNrYWdlcyBhIHN1c3RhaW5hYmxlIGNob2ljZSBhcyB0aGV5IHV0aWxpemUgcmVuZXdhYmxlIHdhc3RlIGFuZCBhdm9pZCB0aGUgdXNlIG9mIGZvc3NpbCByZXNvdXJjZXMuIFRoZXkgaGF2ZSBhIHJpZ2lkIGFuZCBuYXR1cmFsIGFwcGVhcmFuY2Ugc2ltaWxhciB0byBjYXJkYm9hcmQgYnV0IHdpdGggaGlnaGVyIHJlc2lzdGFuY2UgdG8gd2F0ZXIgYW5kIGdyZWFzZS4gVGhlaXIgY29tbW9uIHVzZSBpcyBmb3IgdGhlIGNvbnNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb24gb2YgZnJlc2ggYW5kIHByZXBhcmVkIGZvb2RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+QnJpZWYgaGlzdG9yeSBhbmQgb3JpZ2luIG9mIHRoZXNlIGVjby1mcmllbmRseSBwYWNrYWdlczwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPkRpZmZlcmVuY2VzIHdpdGggb3RoZXIgdHlwZXMgb2YgYmlvZGVncmFkYWJsZSBwYWNrYWdpbmc8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+UmF3IG1hdGVyaWFsOjwvc3Ryb25nPiBXaGlsZSBzdWdhcmNhbmUgcGFja2FnaW5nIHVzZXMgcGxhbnQgYmFnYXNzZSwgb3RoZXIgYmlvZGVncmFkYWJsZSBwcm9kdWN0cyBhcmUgb2Z0ZW4gbWFkZSBmcm9tIHBvdGF0byBzdGFyY2gsIFBMQSAocG9seWxhY3RpYyBhY2lkIGRlcml2ZWQgZnJvbSBjb3JuKSwgY2FyZGJvYXJkLCBvciByZWN5Y2xlZCBwYXBlci48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+UHJvcGVydGllczo8L3N0cm9uZz4gU3VnYXJjYW5lIHBhY2thZ2luZyBpcyBub3RlZCBmb3IgaXRzIGhpZ2hlciByZXNpc3RhbmNlIHRvIGhpZ2ggdGVtcGVyYXR1cmVzIGFuZCBtb2lzdHVyZS4gVW5saWtlIHNvbWUgYmlvcGxhc3RpY3MsIHRoZXkgY2FuIHdpdGhzdGFuZCBtaWNyb3dhdmVzIGFuZCBvdmVucy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+RGVncmFkYXRpb246PC9zdHJvbmc+IFRoZXkgYmlvZGVncmFkZSBxdWlja2x5IGFuZCBjb21wbGV0ZWx5IGluIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLCBkaWZmZXJlbnRpYXRpbmcgdGhlbXNlbHZlcyBmcm9tIHBsYXN0aWMtY29hdGVkIGNhcmRib2FyZCBvciBiaW9wbGFzdGljIHRoYXQgbWF5IHJlcXVpcmUgbW9yZSBzcGVjaWZpYyBwcm9jZXNzZXMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkFwcGVhcmFuY2UgYW5kIHRleHR1cmU6PC9zdHJvbmc+IFRoZXkgb2ZmZXIgYSByaWdpZCB0ZXh0dXJlIGFuZCBuYXR1cmFsIGNvbG9yLCB3aGlsZSBvdGhlciBiaW9kZWdyYWRhYmxlcyBtYXkgYmUgdHJhbnNwYXJlbnQgKFBMQSkgb3IgbGVzcyByb2J1c3QgKHRoaW4gY2FyZGJvYXJkKS48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIHR5cGUgb2YgcGFja2FnaW5nIG1lZXRzIHRoZSBkZW1hbmQgZm9yIHN1c3RhaW5hYmxlIG9wdGlvbnMgd2l0aG91dCBzYWNyaWZpY2luZyBmdW5jdGlvbmFsaXR5IGFuZCBzYWZldHkgaW4gZm9vZCBjb250YWN0LCB0aHVzIHBsYXlpbmcgYSBrZXkgcm9sZSBpbiB0aGUgdHJhbnNpdGlvbiB0byBhIGNpcmN1bGFyIGVjb25vbXkuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+U3VnYXJjYW5lIHBhY2thZ2luZyBtYW51ZmFjdHVyaW5nIHByb2Nlc3M8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPlJhdyBtYXRlcmlhbHMgdXNlZDwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIGJhc2Ugb2Ygc3VnYXJjYW5lIHBhY2thZ2luZyBpcyBiYWdhc3NlLCB0aGUgcmVzaWR1YWwgcGxhbnQgZmliZXIgYWZ0ZXIganVpY2UgZXh0cmFjdGlvbiBmcm9tIHRoZSBjYW5lLiBJbnN0ZWFkIG9mIGJlaW5nIGRpc2NhcmRlZCwgdGhpcyBhZ3JpY3VsdHVyYWwgYnlwcm9kdWN0IGlzIHJldXNlZCB0byBjcmVhdGUgYSBmaWJyb3VzIG1hc3MuIFRoZSBwcm9jZXNzIGRvZXMgbm90IGFkZCBwbGFzdGljcyBvciB0b3hpYyBjaGVtaWNhbHMsIGVuc3VyaW5nIHRoZSBtYXRlcmlhbCdzIHB1cml0eSBhbmQgc3VpdGFiaWxpdHkgZm9yIGZvb2QgY29udGFjdC4gV2F0ZXIgYW5kIHNvbWUgbmF0dXJhbCBhZGRpdGl2ZXMgbWF5IGJlIGluY29ycG9yYXRlZCB0byBpbXByb3ZlIHRoZSBjb2hlc2lvbiBhbmQgbW9sZGFiaWxpdHkgb2YgdGhlIGZpYmVyLCBhbHdheXMgZm9sbG93aW5nIHN1c3RhaW5hYmlsaXR5IGNyaXRlcmlhLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPk1haW4gcHJvZHVjdGlvbiBzdGFnZXM8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IHsib3JkZXJlZCI6dHJ1ZX0gLS0+CjxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkNvbGxlY3Rpb24gYW5kIGNsZWFuaW5nIG9mIGJhZ2Fzc2U6PC9zdHJvbmc+IEFmdGVyIGp1aWNlIGV4dHJhY3Rpb24sIHRoZSBmaWJlciBpcyBjbGVhbmVkIHRvIHJlbW92ZSBpbXB1cml0aWVzIGFuZCByZXNpZHVlcy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+R3JpbmRpbmc6PC9zdHJvbmc+IFRoZSBiYWdhc3NlIGlzIGdyb3VuZCB0byBvYnRhaW4gYSBob21vZ2VuZW91cyBwdWxwLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5NaXhpbmcgYW5kIGtuZWFkaW5nOjwvc3Ryb25nPiBUaGUgcHVscCBpcyBtaXhlZCB3aXRoIHdhdGVyIGFuZCBzb21ldGltZXMgbmF0dXJhbCBhZGRpdGl2ZXMgdG8gZW5oYW5jZSByZXNpc3RhbmNlIGFuZCBmYWNpbGl0YXRlIG1vbGRpbmcuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPlByZXNzdXJlIGFuZCBoZWF0IG1vbGRpbmc6PC9zdHJvbmc+IFRoZSBtaXh0dXJlIGlzIHBsYWNlZCBpbiBtb2xkcyBhbmQgc3ViamVjdGVkIHRvIHByZXNzdXJlIGFuZCBoaWdoIHRlbXBlcmF0dXJlcyB0byBzaGFwZSB0aGUgcGFja2FnaW5nLiBUaGlzIGVuc3VyZXMgcmlnaWRpdHkgYW5kIHRoZSBmaW5hbCBmaW5pc2guPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkRyeWluZyBhbmQgdHJpbW1pbmc6PC9zdHJvbmc+IFRoZSBwcm9kdWN0IGlzIHRob3JvdWdobHkgZHJpZWQsIGFuZCBleGNlc3MgbWF0ZXJpYWwgaXMgcmVtb3ZlZCBiZWZvcmUgbW92aW5nIHRvIHF1YWxpdHkgY29udHJvbC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+UGFja2FnaW5nOjwvc3Ryb25nPiBPbmNlIGl0cyByZXNpc3RhbmNlIGlzIHZlcmlmaWVkLCB0aGUgcGFja2FnaW5nIGlzIHBhY2tlZCBmb3IgZGlzdHJpYnV0aW9uLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L29sPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkFjaGlldmluZyBiaW9kZWdyYWRhYmlsaXR5PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+QWR2YW50YWdlcyBvZiBzdWdhcmNhbmUgcGFja2FnaW5nPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5FY28tZnJpZW5kbHkgYW5kIGJpb2RlZ3JhZGFibGU8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgYSBtb3JlIGVjby1mcmllbmRseSBhbHRlcm5hdGl2ZSBjb21wYXJlZCB0byBjb252ZW50aW9uYWwgcGxhc3RpY3MuIFRoZWlyIHBsYW50IG9yaWdpbiBhbmQgdGhlIHVzZSBvZiBiYWdhc3NlIHJlZHVjZSB0aGUgY29uc3VtcHRpb24gb2YgZm9zc2lsIHJlc291cmNlcyBhbmQgdXRpbGl6ZSBhZ3JpY3VsdHVyYWwgd2FzdGUuIEJlaW5nIGNvbXBsZXRlbHkgYmlvZGVncmFkYWJsZSwgdGhlc2UgcGFja2FnZXMgY2FuIGJyZWFrIGRvd24gaW4gYSBmZXcgd2Vla3MgdW5kZXIgaW5kdXN0cmlhbCBjb21wb3N0aW5nIGNvbmRpdGlvbnMsIGJlY29taW5nIG9yZ2FuaWMgbWF0dGVyIHdpdGhvdXQgbGVhdmluZyB0b3hpYyByZXNpZHVlcy4gVGh1cywgdGhleSBjb250cmlidXRlIHRvIHdhc3RlIHJlZHVjdGlvbiBhbmQgZW52aXJvbm1lbnRhbCBpbXByb3ZlbWVudC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5TdWl0YWJsZSBmb3IgZm9vZCB1c2U8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXNlIHBhY2thZ2VzIGFyZSBkZXNpZ25lZCBmb3IgZGlyZWN0IGNvbnRhY3Qgd2l0aCBib3RoIGNvbGQgYW5kIGhvdCBmb29kcy4gVGhleSBkbyBub3QgYWx0ZXIgdGhlIHRhc3RlIG9yIHByb3BlcnRpZXMgb2YgdGhlIHByb2R1Y3RzIHRoZXkgY29udGFpbiBhbmQgY29tcGx5IHdpdGggRXVyb3BlYW4gcmVndWxhdGlvbnMgZm9yIGZvb2QgcGFja2FnaW5nLCBwcm92aWRpbmcgc2FmZXR5IGFuZCBoeWdpZW5lLiBUaGUgYWJzZW5jZSBvZiBwbGFzdGljcyBvciB0b3hpYyBhZGRpdGl2ZXMgaXMgY3J1Y2lhbCBmb3IgdGhlaXIgZXZlcnlkYXkgdXNlIGluIHRoZSBmb29kIHNlY3Rvci48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5SZXNpc3RhbmNlIHRvIGdyZWFzZSwgbGlxdWlkcywgYW5kIGhpZ2ggdGVtcGVyYXR1cmVzPC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+Q29tcGFyaXNvbiB3aXRoIHBsYXN0aWMgYW5kIGNhcmRib2FyZCBwYWNrYWdpbmc8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5BZ2FpbnN0IHBsYXN0aWM6PC9zdHJvbmc+IFN1Z2FyY2FuZSBwYWNrYWdpbmcgZG9lcyBub3QgZ2VuZXJhdGUgbWljcm9wbGFzdGljcywgZG9lcyBub3QgcmVxdWlyZSBwZXRyb2xldW0sIG5vciByZWxlYXNlcyBoYXJtZnVsIHN1YnN0YW5jZXMgdXBvbiBkZWdyYWRpbmcuIFRoZWlyIHJlbmV3YWJsZSBjb21wb3NpdGlvbiBhbmQgY2FwYWNpdHkgdG8gYmlvZGVncmFkZSByZXByZXNlbnQgYSBzaWduaWZpY2FudCBpbXByb3ZlbWVudCBpbiB3YXN0ZSBtYW5hZ2VtZW50LjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5BZ2FpbnN0IGNhcmRib2FyZDo8L3N0cm9uZz4gVGhleSBhcmUgbW9yZSByZXNpc3RhbnQsIGVzcGVjaWFsbHkgaW4gY29udGFjdCB3aXRoIGxpcXVpZHMgYW5kIGdyZWFzZS4gV2hpbGUgY2FyZGJvYXJkIG1heSBzb2Z0ZW4gb3IgZGlzaW50ZWdyYXRlLCBzdWdhcmNhbmUgcGFja2FnaW5nIG1haW50YWlucyBpdHMgc3RydWN0dXJlIGFuZCBvZmZlcnMgZ3JlYXRlciB2ZXJzYXRpbGl0eSBhdCBoaWdoIHRlbXBlcmF0dXJlcy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JbiBzdW1tYXJ5LCBjaG9vc2luZyBzdWdhcmNhbmUgcGFja2FnaW5nIG1lYW5zIG9wdGluZyBmb3IgYSBzdXN0YWluYWJsZSBhbmQgc2FmZSBzb2x1dGlvbiwgc3VpdGFibGUgZm9yIGZvb2QgcHJlc2VydmF0aW9uIGFuZCB0cmFuc3BvcnRhdGlvbiBpbiBhIGNvbnRleHQgdGhhdCBpbmNyZWFzaW5nbHkgZGVtYW5kcyBlbnZpcm9ubWVudGFsIHJlc3BvbnNpYmlsaXR5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPk1haW4gdHlwZXMgb2Ygc3VnYXJjYW5lIHBhY2thZ2luZyBhbmQgdGFibGV3YXJlPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgdmFyaWV0eSBvZiBwcm9kdWN0cyBtYWRlIGZyb20gc3VnYXJjYW5lIGNhdGVycyB0byBkaWZmZXJlbnQgbmVlZHMgaW4gZm9vZCBwcmVzZXJ2YXRpb24sIHByZXNlbnRhdGlvbiwgYW5kIHRyYW5zcG9ydGF0aW9uLiBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbW9zdCBjb21tb24gYW5kIHZlcnNhdGlsZSBvcHRpb25zOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+UmVjdGFuZ3VsYXIgY29udGFpbmVycyBhbmQgdHJheXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5SZWN0YW5ndWxhciBjb250YWluZXJzIGFuZCB0cmF5cyBhcmUgdGhlIG1vc3QgY29tbW9uIHNvbHV0aW9uIGZvciBpbmRpdmlkdWFsIHNlcnZpbmdzLCBjb21ibyBtZW51cywgb3IgcGxhdGUgcHJlc2VudGF0aW9uLiBUaGVzZSBwYWNrYWdlcyBzdGFuZCBvdXQgZm9yIHRoZWlyIGZsYXQgYm90dG9tIGFuZCByZWluZm9yY2VkIGVkZ2VzLCBtYWtpbmcgaGFuZGxpbmcgYW5kIHN0b3JhZ2UgZWFzaWVyLiBUaGV5IGFyZSB1c2VkIGZvciBib3RoIGhvdCBhbmQgY29sZCBtZWFscyBhbmQgYXJlIHN1aXRhYmxlIGZvciBjYXJyeS1vdXQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Db250YWluZXJzIHdpdGggb25lIG9yIG11bHRpcGxlIGNvbXBhcnRtZW50czwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXJlIGFyZSBwYWNrYWdlcyBkZXNpZ25lZCB3aXRoIG9uZSwgdHdvLCBvciBldmVuIHRocmVlIGNvbXBhcnRtZW50cywgaWRlYWwgZm9yIHNlcGFyYXRpbmcgZm9vZCB3aXRoaW4gYSBzaW5nbGUgcGFja2FnZSBhbmQgYXZvaWRpbmcgdGhlIG1peGluZyBvZiBmbGF2b3JzIGFuZCB0ZXh0dXJlcy4gVGhpcyBvcHRpb24gaXMgY29tbW9uIGluIGNvbWJvIG1lbnVzLCBjYXJyeS1vdXQgZGlzaGVzLCBvciBjYXRlcmluZyB0cmF5cywgZW5zdXJpbmcgdGhhdCBlYWNoIGZvb2QgcmV0YWlucyBhbGwgaXRzIHF1YWxpdGllcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlRhYmxld2FyZSBhbmQgbWVudSBjYXJyaWVyczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSB0YWJsZXdhcmUgb2ZmZXJpbmcgaW5jbHVkZXMgZmxhdCBwbGF0ZXMsIGRlZXAgcGxhdGVzLCBib3dscywgYW5kIG1lbnUgY2FycmllcnMuIEFsbCB0aGVzZSBwcm9kdWN0cyBvZmZlciBhIHJvYnVzdCBhbmQgbmF0dXJhbCBmaW5pc2gsIGJlaW5nIHJlc2lzdGFudCBhbmQgc3VpdGFibGUgZm9yIGludGVuc2l2ZSB1c2UgaW4gZXZlbnRzIG9yIGhvc3BpdGFsaXR5IHNlcnZpY2VzLiBNZW51IGNhcnJpZXJzIGFsbG93IGZvciB0aGUgc2FmZSB0cmFuc3BvcnRhdGlvbiBvZiBjb21wbGV0ZSBtZWFscy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aW1hZ2UgeyJpZCI6MzUyNjEsInNpemVTbHVnIjoiZnVsbCIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5PcHRpb25zIHdpdGggbGlkcyAoUEVULCBQUCwgYW5kIHN1Z2FyY2FuZSk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UbyBpbmNyZWFzZSB2ZXJzYXRpbGl0eSwgbWFueSBzdWdhcmNhbmUgcGFja2FnZXMgY2FuIGluY29ycG9yYXRlIGEgbGlkLiBUaGUgbGlkcyBjYW4gYmUgUEVUIChzdWl0YWJsZSBmb3Igdmlld2luZyB0aGUgY29udGVudHMpLCBQUCAobW9yZSByZXNpc3RhbnQgdG8gaGlnaCB0ZW1wZXJhdHVyZXMpLCBvciBldmVuIHRoZSBzYW1lIHBsYW50IG1hdGVyaWFsLCBmdXJ0aGVyIGVuaGFuY2luZyB0aGUgcGFja2FnZSdzIHN1c3RhaW5hYmlsaXR5IGFuZCBhbGxvd2luZyBmb3IgdGhlIHNlY3VyZSB0cmFuc3BvcnRhdGlvbiBvZiBsaXF1aWQgb3IgYnJvdGh5IGZvb2RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RGlmZmVyZW50IGNhcGFjaXRpZXMgYW5kIG1lYXN1cmVtZW50czwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSByYW5nZSBpbmNsdWRlcyBzbWFsbCB0cmF5cyBmb3IgdGFwYXMgb3IgZGVzc2VydHMgdG8gbGFyZ2UtY2FwYWNpdHkgY29udGFpbmVycyBmb3IgbWFpbiBkaXNoZXMsIGNvbXBsZXRlIG1lbnVzLCBvciBsYXJnZSBzZXJ2aW5ncy4gVGhlIG1lYXN1cmVtZW50cyBhcmUgYWRhcHRlZCB0byBpbmRpdmlkdWFsIHBvcnRpb25zIGFuZCBmYW1pbHkgb3IgZ3JvdXAgcHJlc2VudGF0aW9ucy4gVGhpcyBhbGxvd3MgZm9yIG1lZXRpbmcgYWxsIG5lZWRzLCBmcm9tIHRha2UtYXdheSB0byBjb2xsZWN0aXZlIGV2ZW50cy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIGRpdmVyc2l0eSBtYWtlcyBzdWdhcmNhbmUgcGFja2FnaW5nIGFkYXB0YWJsZSB0byBib3RoIGhvc3BpdGFsaXR5LCBmb29kIHJldGFpbCwgYW5kIHN1c3RhaW5hYmxlIGV2ZW50cywgb2ZmZXJpbmcgZWNvbG9naWNhbCBhbmQgcHJhY3RpY2FsIHNvbHV0aW9ucyBmb3IgZWFjaCBzZXJ2aWNlIGZvcm1hdC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5Vc2VzIGFuZCBhcHBsaWNhdGlvbnM8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkZvb2QgcHJlc2VydmF0aW9uIGFuZCB0cmFuc3BvcnRhdGlvbjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U3VnYXJjYW5lIHBhY2thZ2luZyBhbGxvd3MgZm9yIHRoZSBzYWZlIHByZXNlcnZhdGlvbiBvZiBmcmVzaCwgY29va2VkLCBvciBwcmVjb29rZWQgZm9vZHMsIG1haW50YWluaW5nIHRoZWlyIHF1YWxpdHkgYW5kIGZsYXZvci4gVGhhbmtzIHRvIHRoZWlyIHJlc2lzdGFudCBzdHJ1Y3R1cmUsIHRoZXNlIHBhY2thZ2VzIHdpdGhzdGFuZCBsaXF1aWRzLCBncmVhc2UsIGFuZCBzYXVjZXMgd2l0aG91dCBsb3NpbmcgdGhlaXIgaW50ZWdyaXR5LCBtYWtpbmcgdGhlbSBpZGVhbCBmb3IgdHJhbnNwb3J0aW5nIHByZXBhcmVkIGRpc2hlcywgaG90IHNlcnZpbmdzLCBhbmQgY29tcGxldGUgbWVudXMuIFRoZXkgYXJlIHN1aXRhYmxlIGZvciByZWZyaWdlcmF0b3JzLCBmcmVlemVycywgbWljcm93YXZlcywgYW5kIG92ZW5zLCBmYWNpbGl0YXRpbmcgdGhlIHN0b3JhZ2UgYW5kIHJlaGVhdGluZyBvZiBmb29kIGF0IHZhcmlvdXMgc2VydmljZSBzdGFnZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+Q2F0ZXJpbmcsIHRha2UtYXdheSwgYW5kIGZvb2QgZGVsaXZlcnk8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkluIHRoZSBjYXRlcmluZyBzZWN0b3IsIHN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgY29tbW9ucGxhY2UgaW4gdGFrZS1hd2F5IGVzdGFibGlzaG1lbnRzLCBkZWxpdmVyeSBzZXJ2aWNlcywgYmFycywgYW5kIGNhdGVyaW5nIHNlcnZpY2VzLiBUaGVpciBmdW5jdGlvbmFsIGRlc2lnbiBhbmQgcmFuZ2Ugb2YgZm9ybWF0cyBmYWNpbGl0YXRlIHRoZSBwcmVzZW50YXRpb24gYW5kIGRlbGl2ZXJ5IG9mIG1lYWxzIGZvciBib3RoIGRpcmVjdCBjb25zdW1wdGlvbiBhbmQgZGlzdHJpYnV0aW9uLiBBZGRpdGlvbmFsbHksIHRoZWlyIHJlc2lzdGFuY2UgYW5kIGFiaWxpdHkgdG8gbWFpbnRhaW4gdGhlIHRlbXBlcmF0dXJlIG9mIGZvb2QgY29udHJpYnV0ZSB0byBlbmhhbmNpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZS4gVGhlc2UgcGFja2FnZXMgbWVldCB0aGUgbmVlZHMgb2YgcHJvZmVzc2lvbmFsIGtpdGNoZW5zIGFuZCBzbWFsbCBidXNpbmVzc2VzLCBhZGFwdGluZyB0byB0aGUgcmh5dGhtcyBhbmQgZGVtYW5kcyBvZiBtb2Rlcm4gc2VydmljZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5FY29sb2dpY2FsIGFuZCBzdXN0YWluYWJsZSBldmVudHM8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgdmVyc2F0aWxpdHkgYW5kIGZ1bmN0aW9uYWxpdHkgb2Ygc3VnYXJjYW5lIHBhY2thZ2luZyBtYWtlIHRoZW0gYWxsaWVzIGZvciBib3RoIHRoZSBmb29kIGluZHVzdHJ5IGFuZCBhbnkgaW5pdGlhdGl2ZSByZXF1aXJpbmcgc2FmZSwgaHlnaWVuaWMsIGFuZCBzdXN0YWluYWJsZSBzb2x1dGlvbnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+PGEgaHJlZj0iaHR0cHM6Ly9hdHJpYWlubm92YXRpb24uY29tL2VuL2xvZy9ob3ctdG8ta25vdy1mLWEtcHJ1Y3QtaXMtYmlvZGxlLyIgZGF0YS10eXBlPSJsbmsiIGRhdGEtaWQ9Imh0dHBzOi8vYXRyaWFpbm5vdmF0aW9uLmNvbS9lbi9ib2cvaG93LXRvLWtub3ctZi1hLXByb2R1Yy1pcy1iaW9kZWdyYWRhYmxlLyI+YmlvZGVncmFkYWJpbGl0PC9hPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmdyZWVudXNvLm9tL2Jsb2cvYmlvZGdyYWRhYi1taW5pYXR1cmVzLWZvci1ldmVudHMvIiBkYXRhLXR5cGU9ImxpbmsiIGRhdGEtaWQ9Imh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9sb2cvYmlvZGVnZGFibGUtbWluaWF1cmVzLWZvci1ldmVudHMvIj5jZWxlYnJhdDwvYT48cD5UaGUgPGEgaHJlZj0iaHR0cHM6Ly9hdHJpYWlubm92YXRpb24uY29tL2VuL2Jsb2cvaG93LXRvLWtub3ctaWYtYS1wcm9kdWN0LWlzLWJpb2RlZ3JhZGFibGUvIiBkYXRhLXR5cGU9ImxpbmsiIGRhdGEtaWQ9Imh0dHBzOi8vYXRyaWFpbm5vdmF0aW9uLmNvbS9lbi9ibG9nL2hvdy10by1rbm93LWlmLWEtcHJvZHVjdC1pcy1iaW9kZWdyYWRhYmxlLyI+YmlvZGVncmFkYWJpbGl0eTwvYT4gb2YgdGhlc2UgcGFja2FnZXMgY29tZXMgZnJvbSB0aGVpciAxMDAlIHBsYW50IGNvbXBvc2l0aW9uLCB3aXRob3V0IHBsYXN0aWMgY29tcG9uZW50cy4gVGhhbmtzIHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGJhZ2Fzc2UgYW5kIHRoZSBhYnNlbmNlIG9mIHN5bnRoZXRpYyBjb2F0aW5ncywgdGhlc2UgcGFja2FnZXMgY2FuIGRlY29tcG9zZSBpbiBhIGZldyB3ZWVrcyB1bmRlciBpbmR1c3RyaWFsIGNvbXBvc3RpbmcgY29uZGl0aW9ucy4gVGhlIG1hbnVmYWN0dXJpbmcgcHJvY2VzcyByZXNwZWN0cyB0aGUgb3JpZ2luYWwgcHJvcGVydGllcyBvZiB0aGUgZmliZXIgc28gdGhhdCBhZnRlciB1c2UsIHRoZSBwYWNrYWdpbmcgYmVjb21lcyBvcmdhbmljIG1hdHRlciwgdGh1cyBjbG9zaW5nIHRoZSBuYXR1cmFsIGN5Y2xlIGFuZCBhbGlnbmluZyB3aXRoIGNpcmN1bGFyIGVjb25vbXkgcHJpbmNpcGxlcy4gQWRkaXRpb25hbGx5LCB0aGUgYWJzZW5jZSBvZiB0b3hpYyBlbGVtZW50cyBlbnN1cmVzIHRoYXQgYWZ0ZXIgYmlvZGVncmFkYXRpb24sIG5vIGhhcm1mdWwgc3Vic3RhbmNlcyBhcmUgcmVsZWFzZWQgaW50byB0aGUgZW52aXJvbm1lbnQuPC9wPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL3d3dy5ncmVlbnVzby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvQ2FwdHVyYS1kZS1wYW50YWxsYS0yMDI2LTA0LTI5LTEwMDU0Ny0zLmpwZyIgYWx0PSJTdWdhcmNhbmUgRm9vZCBDb250YWluZXJzOiBTdXN0YWluYWJsZSAmYW1wOyBEdXJhYmxlIiBjbGFzcz0id3AtaW1hZ2UtMzUyNjEiLz48L2ZpZ3VyZT4KPHA+Rm9yIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nL2Jpb2RlZ3JhZGFibGUtbWluaWF0dXJlcy1mb3ItZXZlbnRzLyIgZGF0YS10eXBlPSJsaW5rIiBkYXRhLWlkPSJodHRwczovL3d3dy5ncmVlbnVzby5jb20vYmxvZy9iaW9kZWdyYWRhYmxlLW1pbmlhdHVyZXMtZm9yLWV2ZW50cy8iPmNlbGVicmF0aW9ucywgZmFpcnMsIGFuZCBjb2xsZWN0aXZlIGV2ZW50czwvYT4gY29tbWl0dGVkIHRvIHN1c3RhaW5hYmlsaXR5LCBzdWdhcmNhbmUgcGFja2FnaW5nIHByZXNlbnRzIHRoZSBiZXN0IG9wdGlvbiB0byByZWR1Y2UgcGxhc3RpYyB3YXN0ZSBhbmQgcHJvbW90ZSByZXNwb25zaWJsZSBwcmFjdGljZXMuIFRoZXkgYXJlIGEgcmVzcGVjdGZ1bCBzb2x1dGlvbiB0aGF0LCBpbiBhZGRpdGlvbiB0byBvZmZlcmluZyBhIGNhcmVmdWwgcHJlc2VudGF0aW9uLCBhbGxvd3Mgb3JnYW5pemVycyB0byBjb21wbHkgd2l0aCBpbmNyZWFzaW5nbHkgZGVtYW5kaW5nIGVudmlyb25tZW50YWwgcmVndWxhdGlvbnMuIFRoZWlyIGVhc2Ugb2YgY29tcG9zdGluZyBhbmQgbmF0dXJhbCBpbWFnZSBlbmhhbmNlIHRoZSBlY29sb2dpY2FsIHZhbHVlIG9mIGFueSBnYXRoZXJpbmcsIGFsaWduaW5nIHRoZSBvcmdhbml6YXRpb24gd2l0aCBhIHRyZW5kIG9mIGVudmlyb25tZW50YWwgcmVzcG9uc2liaWxpdHkuPC9wPgpkb2N1bWVudHNsdWc8c3Ryb25nPjwvc3Ryb25nPjxzdG9uZz5yPC9zdHJvbmc+PHA+VGhlIHVzZSBvZiBzdWdhcmNhbmUgZm9yIHBhY2thZ2luZyBhcm9zZSBmcm9tIHRoZSBuZWVkIHRvIDxzdHJvbmc+cmVkdWNlIHBsYXN0aWM8L3N0cm9uZz4gd2FzdGUgYW5kIG9wdCBmb3IgYmlvZGVncmFkYWJsZSBzb2x1dGlvbnMuIFRoZXNlIHBhY2thZ2VzIGJlZ2FuIHRvIGJlIGRldmVsb3BlZCBpbiByZWdpb25zIHdpdGggbGFyZ2Ugc3VnYXIgcHJvZHVjdGlvbiBhbmQgYWJ1bmRhbnQgYmFnYXNzZSwgbWFpbmx5IGluIEFzaWFuIGFuZCBMYXRpbiBBbWVyaWNhbiBjb3VudHJpZXMuIFRoZWlyIHBvcHVsYXJpdHkgaGFzIGdyb3duIGluIEV1cm9wZSBpbiByZWNlbnQgeWVhcnMgZHVlIHRvIGluY3JlYXNlZCBlbnZpcm9ubWVudGFsIGF3YXJlbmVzcywgcGxhc3RpYyByZXN0cmljdGlvbnMsIGFuZCBzdXN0YWluYWJpbGl0eSBwb2xpY2llcyBpbiBjYXRlcmluZyBhbmQgZm9vZCBzZXJ2aWNlcy48L3A+CjxwPk9uZSBvZiB0aGUgbWFpbiBhZHZhbnRhZ2VzIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgaXRzIHJlc2lzdGFuY2UuIFRoZSBwbGFudCBmaWJlciBpcyBpbXBlcm1lYWJsZSB0byBncmVhc2UgYW5kIGxpcXVpZHMsIHByZXZlbnRpbmcgbGVha3MgYW5kIGRyaXBzIGR1cmluZyBmb29kIHRyYW5zcG9ydGF0aW9uLiBNb3Jlb3ZlciwgdGhleSB3aXRoc3RhbmQgaGlnaCB0ZW1wZXJhdHVyZXMsIGFsbG93aW5nIHRoZWlyIHVzZSBpbiA8c3Ryb25nPm1pY3Jvd2F2ZXMgYW5kIG92ZW5zPC9zdHJvbmc+LCBzb21ldGhpbmcgdW5jb21tb24gaW4gYmlvZGVncmFkYWJsZSBwYWNrYWdpbmcgbWFkZSBmcm9tIG90aGVyIHJhdyBtYXRlcmlhbHMgbGlrZSBjYXJkYm9hcmQuIFRoaXMgcmVzaXN0YW5jZSBlbnN1cmVzIHRoZWlyIHVzZWZ1bG5lc3MgaW4gdGFrZS1hd2F5LCBjYXRlcmluZywgYW5kIHJlc3RhdXJhbnRzLjwvcD4KBQcIBAgGCAU7CAcIBwgGCA4IDggLCAZIAQYIBFMAF1IAGRsXXAAdDxcQERkdEhEXFhcaGxgbCQgKCAQIBggHDwQKBwsFBwUHPQUIBwQKBxO6AwdLAAgHBAoHHAULCAcECgcyB0sACAcECge3BwdLAAgHBAoHiAEHSwAIBwQKBzoBDasFB0sACAcECgeIAQdLAAgHBAoHBgsIBwQKB5MDCwgHBAoHuAILCAcECgeaAwsIBwQKB6sCCwgHBAoHvgIHSwAIBwQKBykFCwgHBAoHEgULCAcECgeSBwdLAAgHBAoHFgULCAcECgcGCwgHBAoHhAILCAcECgeOAQsIBwQKB5ACCwgHBAoHvgILCAcECgeHAgsIBwQKB6YBCwgHBAoHGgULCAcECgcEQQACB0EDkAkHSwAIBwQKByEFCwgHBAoHHgULCAcECgeDBwdLAAgHBAoHFQULCAcECgeLBQdLAAgHBAoHNAULCAcECge0AxSvAgdLAAgHBAoHLwULCAcECgcGCwgHBAoHkgQLCAcECge4AwsIBwQKB5EDB0sACAcECgcvBQsIBwQKB7YCB0sACAcECgcgBQsIBwQKB60EB0sACAcECgcsBQsIBwQKB6cEB0sACAcECgcbBQsIBwQKB54EB0sACAcECgcqBQsIBwQKB4AFB0sACAcECgclBQsIBwQKB6QEB0sACAcECgexAgdLAAgHBAoHFQULCAcECgckBQsIBwQKB6AHB0sACAcECgcmBQsIBwQKB5oIB0sACAcECgchBQsIBwQKBwRBAAIBAgEijwcHSwAIBwQKB6wCB0sABwsICQcGCAcECgclCwcGCAcECgcqCwcGCAcECgcbCwcGCAcECgcsCwcGCAcECgcgCwgHBAoDBwsCBAMID5UQjTmIFr4voi24AygQBgsRLQ8KIwQeDAaMAQoLGgSzDK4DtAoIBAgJAwUJjAeQBxYBAwAAAQAAAAEIABoBAgAHAQEApQQBiQJCAQEAQQAAAkEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAGEEBlqsBQdkCuwasCb8GugKFCAECAQNBAAHvBQB9AX0BfYamBHcEb3BlbncEb3Blbnl3AHcIc3RhbmRhcmR3B2RlZmF1bHR3AHcHZGVmYXVsdHcHZGVmYXVsdHcHZGVmYXVsdHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3B2RlZmF1bHR3B2RlZmF1bHR2AwdkZXNrdG9wdgwQYmFja2dyb3VuZC1jb2xvcncZdmFyKC0tYXN0LWdsb2JhbC1jb2xvci00KRBiYWNrZ3JvdW5kLWltYWdldwARYmFja2dyb3VuZC1yZXBlYXR3BnJlcGVhdBNiYWNrZ3JvdW5kLXBvc2l0aW9udw1jZW50ZXIgY2VudGVyD2JhY2tncm91bmQtc2l6ZXcEYXV0bxViYWNrZ3JvdW5kLWF0dGFjaG1lbnR3BnNjcm9sbA9iYWNrZ3JvdW5kLXR5cGV3ABBiYWNrZ3JvdW5kLW1lZGlhdwAMb3ZlcmxheS10eXBldwANb3ZlcmxheS1jb2xvcncAD292ZXJsYXktb3BhY2l0eXcAEG92ZXJsYXktZ3JhZGllbnR3AAZ0YWJsZXR2DBBiYWNrZ3JvdW5kLWNvbG9ydwAQYmFja2dyb3VuZC1pbWFnZXcAEWJhY2tncm91bmQtcmVwZWF0dwZyZXBlYXQTYmFja2dyb3VuZC1wb3NpdGlvbncNY2VudGVyIGNlbnRlcg9iYWNrZ3JvdW5kLXNpemV3BGF1dG8VYmFja2dyb3VuZC1hdHRhY2htZW50dwZzY3JvbGwPYmFja2dyb3VuZC10eXBldwAQYmFja2dyb3VuZC1tZWRpYXcADG92ZXJsYXktdHlwZXcADW92ZXJsYXktY29sb3J3AA9vdmVybGF5LW9wYWNpdHl3ABBvdmVybGF5LWdyYWRpZW50dwAGbW9iaWxldgwQYmFja2dyb3VuZC1jb2xvcncAEGJhY2tncm91bmQtaW1hZ2V3ABFiYWNrZ3JvdW5kLXJlcGVhdHcGcmVwZWF0E2JhY2tncm91bmQtcG9zaXRpb253DWNlbnRlciBjZW50ZXIPYmFja2dyb3VuZC1zaXpldwRhdXRvFWJhY2tncm91bmQtYXR0YWNobWVudHcGc2Nyb2xsD2JhY2tncm91bmQtdHlwZXcAEGJhY2tncm91bmQtbWVkaWF3AAxvdmVybGF5LXR5cGV3AA1vdmVybGF5LWNvbG9ydwAPb3ZlcmxheS1vcGFjaXR5dwAQb3ZlcmxheS1ncmFkaWVudHcAdgMHZGVza3RvcHYMEGJhY2tncm91bmQtY29sb3J3GXZhcigtLWFzdC1nbG9iYWwtY29sb3ItNSkQYmFja2dyb3VuZC1pbWFnZXcAEWJhY2tncm91bmQtcmVwZWF0dwZyZXBlYXQTYmFja2dyb3VuZC1wb3NpdGlvbncNY2VudGVyIGNlbnRlcg9iYWNrZ3JvdW5kLXNpemV3BGF1dG8VYmFja2dyb3VuZC1hdHRhY2htZW50dwZzY3JvbGwPYmFja2dyb3VuZC10eXBldwAQYmFja2dyb3VuZC1tZWRpYXcADG92ZXJsYXktdHlwZXcADW92ZXJsYXktY29sb3J3AA9vdmVybGF5LW9wYWNpdHl3ABBvdmVybGF5LWdyYWRpZW50dwAGdGFibGV0dgwQYmFja2dyb3VuZC1jb2xvcncZdmFyKC0tYXN0LWdsb2JhbC1jb2xvci01KRBiYWNrZ3JvdW5kLWltYWdldwARYmFja2dyb3VuZC1yZXBlYXR3BnJlcGVhdBNiYWNrZ3JvdW5kLXBvc2l0aW9udw1jZW50ZXIgY2VudGVyD2JhY2tncm91bmQtc2l6ZXcEYXV0bxViYWNrZ3JvdW5kLWF0dGFjaG1lbnR3BnNjcm9sbA9iYWNrZ3JvdW5kLXR5cGV3ABBiYWNrZ3JvdW5kLW1lZGlhdwAMb3ZlcmxheS10eXBldwANb3ZlcmxheS1jb2xvcncAD292ZXJsYXktb3BhY2l0eXcAEG92ZXJsYXktZ3JhZGllbnR3AAZtb2JpbGV2DBBiYWNrZ3JvdW5kLWNvbG9ydxl2YXIoLS1hc3QtZ2xvYmFsLWNvbG9yLTUpEGJhY2tncm91bmQtaW1hZ2V3ABFiYWNrZ3JvdW5kLXJlcGVhdHcGcmVwZWF0E2JhY2tncm91bmQtcG9zaXRpb253DWNlbnRlciBjZW50ZXIPYmFja2dyb3VuZC1zaXpldwRhdXRvFWJhY2tncm91bmQtYXR0YWNobWVudHcGc2Nyb2xsD2JhY2tncm91bmQtdHlwZXcAEGJhY2tncm91bmQtbWVkaWF3AAxvdmVybGF5LXR5cGV3AA1vdmVybGF5LWNvbG9ydwAPb3ZlcmxheS1vcGFjaXR5dwAQb3ZlcmxheS1ncmFkaWVudHcAdwB1AX0ndQB3JDQwMDZhMDViLWQ5NWYtNDY2YS05YzY0LWNlNGVhOTNmZDEzMHh3lFY8aDE+U3VnYXJjYW5lIFBhY2thZ2luZzogU3VzdGFpbmFiaWxpdHkgYW5kIEVjb2xvZ2ljYWwgQWR2YW50YWdlczwvaDE+CjxwPlN1Z2FyY2FuZSBwYWNrYWdpbmcgb2ZmZXJzIGEgc3VzdGFpbmFibGUgYWx0ZXJuYXRpdmUgZm9yIHByZXNlcnZpbmcgYW5kIHRyYW5zcG9ydGluZyBmb29kLiBNYWRlIGZyb20gcmVuZXdhYmxlIHBsYW50IHdhc3RlLCB0aGV5IG5hdHVyYWxseSBkZWdyYWRlIGFmdGVyIHVzZS4gVGhleSBhcmUgYW4gZWZmZWN0aXZlIG9wdGlvbiBmb3IgdGhvc2UgbG9va2luZyB0byByZWR1Y2UgdGhlaXIgZW52aXJvbm1lbnRhbCBpbXBhY3QgaW4gZGFpbHkgbGlmZSBhbmQgY2F0ZXJpbmcuPC9wPgo8aDI+V2hhdCBpcyBzdWdhcmNhbmUgcGFja2FnaW5nPzwvaDI+CjxwPjxzdHJvbmc+RGVmaW5pdGlvbiBvZiBzdWdhcmNhbmUgcGFja2FnaW5nPC9zdHJvbmc+PC9wPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGNvbnNpc3RzIG9mIGNvbnRhaW5lcnMgbWFkZSBmcm9tIGJhZ2Fzc2UsIHRoZSBwbGFudCBmaWJlciByZW1haW5pbmcgYWZ0ZXIgZXh0cmFjdGluZyBqdWljZSBmcm9tIHRoZSBjYW5lIHRvIHByb2R1Y2Ugc3VnYXIuIFRoaXMgcmF3IG1hdGVyaWFsIGlzIGFuIGFncmljdWx0dXJhbCBieXByb2R1Y3QsIG1ha2luZyB0aGVzZSBwYWNrYWdlcyBhIHN1c3RhaW5hYmxlIGNob2ljZSBhcyB0aGV5IHV0aWxpemUgcmVuZXdhYmxlIHdhc3RlIGFuZCBhdm9pZCB0aGUgdXNlIG9mIGZvc3NpbCByZXNvdXJjZXMuIFRoZXkgaGF2ZSBhIHJpZ2lkIGFuZCBuYXR1cmFsIGFwcGVhcmFuY2Ugc2ltaWxhciB0byBjYXJkYm9hcmQgYnV0IHdpdGggaGlnaGVyIHJlc2lzdGFuY2UgdG8gd2F0ZXIgYW5kIGdyZWFzZS4gVGhlaXIgY29tbW9uIHVzZSBpcyBmb3IgdGhlIGNvbnNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb24gb2YgZnJlc2ggYW5kIHByZXBhcmVkIGZvb2RzLjwvcD4KPHA+PHN0cm9uZz5CcmllZiBoaXN0b3J5IGFuZCBvcmlnaW4gb2YgdGhlc2UgZWNvLWZyaWVuZGx5IHBhY2thZ2VzPC9zdHJvbmc+PC9wPgo8cD5UaGUgdXNlIG9mIHN1Z2FyY2FuZSBmb3IgcGFja2FnaW5nIGFyb3NlIGZyb20gdGhlIG5lZWQgdG8gcmVkdWNlIHBsYXN0aWMgd2FzdGUgYW5kIG9wdCBmb3IgYmlvZGVncmFkYWJsZSBzb2x1dGlvbnMuIFRoZXNlIHBhY2thZ2VzIGJlZ2FuIHRvIGJlIGRldmVsb3BlZCBpbiByZWdpb25zIHdpdGggbGFyZ2Ugc3VnYXIgcHJvZHVjdGlvbiBhbmQgYWJ1bmRhbnQgYmFnYXNzZSwgbWFpbmx5IGluIEFzaWFuIGFuZCBMYXRpbiBBbWVyaWNhbiBjb3VudHJpZXMuIFRoZWlyIHBvcHVsYXJpdHkgaGFzIGdyb3duIGluIEV1cm9wZSBpbiByZWNlbnQgeWVhcnMgZHVlIHRvIGluY3JlYXNlZCBlbnZpcm9ubWVudGFsIGF3YXJlbmVzcywgcGxhc3RpYyByZXN0cmljdGlvbnMsIGFuZCBzdXN0YWluYWJpbGl0eSBwb2xpY2llcyBpbiBjYXRlcmluZyBhbmQgZm9vZCBzZXJ2aWNlcy48L3A+CjxwPjxzdHJvbmc+RGlmZmVyZW5jZXMgd2l0aCBvdGhlciB0eXBlcyBvZiBiaW9kZWdyYWRhYmxlIHBhY2thZ2luZzwvc3Ryb25nPjwvcD4KPHVsPgo8bGk+PHN0cm9uZz5SYXcgbWF0ZXJpYWw6PC9zdHJvbmc+IFdoaWxlIHN1Z2FyY2FuZSBwYWNrYWdpbmcgdXNlcyBwbGFudCBiYWdhc3NlLCBvdGhlciBiaW9kZWdyYWRhYmxlIHByb2R1Y3RzIGFyZSBvZnRlbiBtYWRlIGZyb20gcG90YXRvIHN0YXJjaCwgUExBIChwb2x5bGFjdGljIGFjaWQgZGVyaXZlZCBmcm9tIGNvcm4pLCBjYXJkYm9hcmQsIG9yIHJlY3ljbGVkIHBhcGVyLjwvbGk+CjxsaT48c3Ryb25nPlByb3BlcnRpZXM6PC9zdHJvbmc+IFN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgbm90ZWQgZm9yIGl0cyBoaWdoZXIgcmVzaXN0YW5jZSB0byBoaWdoIHRlbXBlcmF0dXJlcyBhbmQgbW9pc3R1cmUuIFVubGlrZSBzb21lIGJpb3BsYXN0aWNzLCB0aGV5IGNhbiB3aXRoc3RhbmQgbWljcm93YXZlcyBhbmQgb3ZlbnMuPC9saT4KPGxpPjxzdHJvbmc+RGVncmFkYXRpb246PC9zdHJvbmc+IFRoZXkgYmlvZGVncmFkZSBxdWlja2x5IGFuZCBjb21wbGV0ZWx5IGluIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLCBkaWZmZXJlbnRpYXRpbmcgdGhlbXNlbHZlcyBmcm9tIHBsYXN0aWMtY29hdGVkIGNhcmRib2FyZCBvciBiaW9wbGFzdGljIHRoYXQgbWF5IHJlcXVpcmUgbW9yZSBzcGVjaWZpYyBwcm9jZXNzZXMuPC9saT4KPGxpPjxzdHJvbmc+QXBwZWFyYW5jZSBhbmQgdGV4dHVyZTo8L3N0cm9uZz4gVGhleSBvZmZlciBhIHJpZ2lkIHRleHR1cmUgYW5kIG5hdHVyYWwgY29sb3IsIHdoaWxlIG90aGVyIGJpb2RlZ3JhZGFibGVzIG1heSBiZSB0cmFuc3BhcmVudCAoUExBKSBvciBsZXNzIHJvYnVzdCAodGhpbiBjYXJkYm9hcmQpLjwvbGk+CjwvdWw+CjxwPlRoaXMgdHlwZSBvZiBwYWNrYWdpbmcgbWVldHMgdGhlIGRlbWFuZCBmb3Igc3VzdGFpbmFibGUgb3B0aW9ucyB3aXRob3V0IHNhY3JpZmljaW5nIGZ1bmN0aW9uYWxpdHkgYW5kIHNhZmV0eSBpbiBmb29kIGNvbnRhY3QsIHRodXMgcGxheWluZyBhIGtleSByb2xlIGluIHRoZSB0cmFuc2l0aW9uIHRvIGEgY2lyY3VsYXIgZWNvbm9teS48L3A+CjxoMj5TdWdhcmNhbmUgcGFja2FnaW5nIG1hbnVmYWN0dXJpbmcgcHJvY2VzczwvaDI+CjxoMz5SYXcgbWF0ZXJpYWxzIHVzZWQ8L2gzPgo8cD5UaGUgYmFzZSBvZiBzdWdhcmNhbmUgcGFja2FnaW5nIGlzIGJhZ2Fzc2UsIHRoZSByZXNpZHVhbCBwbGFudCBmaWJlciBhZnRlciBqdWljZSBleHRyYWN0aW9uIGZyb20gdGhlIGNhbmUuIEluc3RlYWQgb2YgYmVpbmcgZGlzY2FyZGVkLCB0aGlzIGFncmljdWx0dXJhbCBieXByb2R1Y3QgaXMgcmV1c2VkIHRvIGNyZWF0ZSBhIGZpYnJvdXMgbWFzcy4gVGhlIHByb2Nlc3MgZG9lcyBub3QgYWRkIHBsYXN0aWNzIG9yIHRveGljIGNoZW1pY2FscywgZW5zdXJpbmcgdGhlIG1hdGVyaWFsJ3MgcHVyaXR5IGFuZCBzdWl0YWJpbGl0eSBmb3IgZm9vZCBjb250YWN0LiBXYXRlciBhbmQgc29tZSBuYXR1cmFsIGFkZGl0aXZlcyBtYXkgYmUgaW5jb3Jwb3JhdGVkIHRvIGltcHJvdmUgdGhlIGNvaGVzaW9uIGFuZCBtb2xkYWJpbGl0eSBvZiB0aGUgZmliZXIsIGFsd2F5cyBmb2xsb3dpbmcgc3VzdGFpbmFiaWxpdHkgY3JpdGVyaWEuPC9wPgo8aDM+TWFpbiBwcm9kdWN0aW9uIHN0YWdlczwvaDM+CjxvbD4KPGxpPjxzdHJvbmc+Q29sbGVjdGlvbiBhbmQgY2xlYW5pbmcgb2YgYmFnYXNzZTo8L3N0cm9uZz4gQWZ0ZXIganVpY2UgZXh0cmFjdGlvbiwgdGhlIGZpYmVyIGlzIGNsZWFuZWQgdG8gcmVtb3ZlIGltcHVyaXRpZXMgYW5kIHJlc2lkdWVzLjwvbGk+CjxsaT48c3Ryb25nPkdyaW5kaW5nOjwvc3Ryb25nPiBUaGUgYmFnYXNzZSBpcyBncm91bmQgdG8gb2J0YWluIGEgaG9tb2dlbmVvdXMgcHVscC48L2xpPgo8bGk+PHN0cm9uZz5NaXhpbmcgYW5kIGtuZWFkaW5nOjwvc3Ryb25nPiBUaGUgcHVscCBpcyBtaXhlZCB3aXRoIHdhdGVyIGFuZCBzb21ldGltZXMgbmF0dXJhbCBhZGRpdGl2ZXMgdG8gZW5oYW5jZSByZXNpc3RhbmNlIGFuZCBmYWNpbGl0YXRlIG1vbGRpbmcuPC9saT4KPGxpPjxzdHJvbmc+UHJlc3N1cmUgYW5kIGhlYXQgbW9sZGluZzo8L3N0cm9uZz4gVGhlIG1peHR1cmUgaXMgcGxhY2VkIGluIG1vbGRzIGFuZCBzdWJqZWN0ZWQgdG8gcHJlc3N1cmUgYW5kIGhpZ2ggdGVtcGVyYXR1cmVzIHRvIHNoYXBlIHRoZSBwYWNrYWdpbmcuIFRoaXMgZW5zdXJlcyByaWdpZGl0eSBhbmQgdGhlIGZpbmFsIGZpbmlzaC48L2xpPgo8bGk+PHN0cm9uZz5EcnlpbmcgYW5kIHRyaW1taW5nOjwvc3Ryb25nPiBUaGUgcHJvZHVjdCBpcyB0aG9yb3VnaGx5IGRyaWVkLCBhbmQgZXhjZXNzIG1hdGVyaWFsIGlzIHJlbW92ZWQgYmVmb3JlIG1vdmluZyB0byBxdWFsaXR5IGNvbnRyb2wuPC9saT4KPGxpPjxzdHJvbmc+UGFja2FnaW5nOjwvc3Ryb25nPiBPbmNlIGl0cyByZXNpc3RhbmNlIGlzIHZlcmlmaWVkLCB0aGUgcGFja2FnaW5nIGlzIHBhY2tlZCBmb3IgZGlzdHJpYnV0aW9uLjwvbGk+Cjwvb2w+CjxoMz5BY2hpZXZpbmcgYmlvZGVncmFkYWJpbGl0eTwvaDM+CjxwPlRoZSBiaW9kZWdyYWRhYmlsaXR5IG9mIHRoZXNlIHBhY2thZ2VzIGNvbWVzIGZyb20gdGhlaXIgMTAwJSBwbGFudCBjb21wb3NpdGlvbiwgd2l0aG91dCBwbGFzdGljIGNvbXBvbmVudHMuIFRoYW5rcyB0byB0aGUgc3RydWN0dXJlIG9mIHRoZSBiYWdhc3NlIGFuZCB0aGUgYWJzZW5jZSBvZiBzeW50aGV0aWMgY29hdGluZ3MsIHRoZXNlIHBhY2thZ2VzIGNhbiBkZWNvbXBvc2UgaW4gYSBmZXcgd2Vla3MgdW5kZXIgaW5kdXN0cmlhbCBjb21wb3N0aW5nIGNvbmRpdGlvbnMuIFRoZSBtYW51ZmFjdHVyaW5nIHByb2Nlc3MgcmVzcGVjdHMgdGhlIG9yaWdpbmFsIHByb3BlcnRpZXMgb2YgdGhlIGZpYmVyIHNvIHRoYXQgYWZ0ZXIgdXNlLCB0aGUgcGFja2FnaW5nIGJlY29tZXMgb3JnYW5pYyBtYXR0ZXIsIHRodXMgY2xvc2luZyB0aGUgbmF0dXJhbCBjeWNsZSBhbmQgYWxpZ25pbmcgd2l0aCBjaXJjdWxhciBlY29ub215IHByaW5jaXBsZXMuIEFkZGl0aW9uYWxseSwgdGhlIGFic2VuY2Ugb2YgdG94aWMgZWxlbWVudHMgZW5zdXJlcyB0aGF0IGFmdGVyIGJpb2RlZ3JhZGF0aW9uLCBubyBoYXJtZnVsIHN1YnN0YW5jZXMgYXJlIHJlbGVhc2VkIGludG8gdGhlIGVudmlyb25tZW50LjwvcD4KPGgyPkFkdmFudGFnZXMgb2Ygc3VnYXJjYW5lIHBhY2thZ2luZzwvaDI+CjxoMz5FY28tZnJpZW5kbHkgYW5kIGJpb2RlZ3JhZGFibGU8L2gzPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGlzIGEgbW9yZSBlY28tZnJpZW5kbHkgYWx0ZXJuYXRpdmUgY29tcGFyZWQgdG8gY29udmVudGlvbmFsIHBsYXN0aWNzLiBUaGVpciBwbGFudCBvcmlnaW4gYW5kIHRoZSB1c2Ugb2YgYmFnYXNzZSByZWR1Y2UgdGhlIGNvbnN1bXB0aW9uIG9mIGZvc3NpbCByZXNvdXJjZXMgYW5kIHV0aWxpemUgYWdyaWN1bHR1cmFsIHdhc3RlLiBCZWluZyBjb21wbGV0ZWx5IGJpb2RlZ3JhZGFibGUsIHRoZXNlIHBhY2thZ2VzIGNhbiBicmVhayBkb3duIGluIGEgZmV3IHdlZWtzIHVuZGVyIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLCBiZWNvbWluZyBvcmdhbmljIG1hdHRlciB3aXRob3V0IGxlYXZpbmcgdG94aWMgcmVzaWR1ZXMuIFRodXMsIHRoZXkgY29udHJpYnV0ZSB0byB3YXN0ZSByZWR1Y3Rpb24gYW5kIGVudmlyb25tZW50YWwgaW1wcm92ZW1lbnQuPC9wPgo8aDM+U3VpdGFibGUgZm9yIGZvb2QgdXNlPC9oMz4KPHA+VGhlc2UgcGFja2FnZXMgYXJlIGRlc2lnbmVkIGZvciBkaXJlY3QgY29udGFjdCB3aXRoIGJvdGggY29sZCBhbmQgaG90IGZvb2RzLiBUaGV5IGRvIG5vdCBhbHRlciB0aGUgdGFzdGUgb3IgcHJvcGVydGllcyBvZiB0aGUgcHJvZHVjdHMgdGhleSBjb250YWluIGFuZCBjb21wbHkgd2l0aCBFdXJvcGVhbiByZWd1bGF0aW9ucyBmb3IgZm9vZCBwYWNrYWdpbmcsIHByb3ZpZGluZyBzYWZldHkgYW5kIGh5Z2llbmUuIFRoZSBhYnNlbmNlIG9mIHBsYXN0aWNzIG9yIHRveGljIGFkZGl0aXZlcyBpcyBjcnVjaWFsIGZvciB0aGVpciBldmVyeWRheSB1c2UgaW4gdGhlIGZvb2Qgc2VjdG9yLjwvcD4KPGgzPlJlc2lzdGFuY2UgdG8gZ3JlYXNlLCBsaXF1aWRzLCBhbmQgaGlnaCB0ZW1wZXJhdHVyZXM8L2gzPgo8cD5PbmUgb2YgdGhlIG1haW4gYWR2YW50YWdlcyBvZiBzdWdhcmNhbmUgcGFja2FnaW5nIGlzIGl0cyByZXNpc3RhbmNlLiBUaGUgcGxhbnQgZmliZXIgaXMgaW1wZXJtZWFibGUgdG8gZ3JlYXNlIGFuZCBsaXF1aWRzLCBwcmV2ZW50aW5nIGxlYWtzIGFuZCBkcmlwcyBkdXJpbmcgZm9vZCB0cmFuc3BvcnRhdGlvbi4gTW9yZW92ZXIsIHRoZXkgd2l0aHN0YW5kIGhpZ2ggdGVtcGVyYXR1cmVzLCBhbGxvd2luZyB0aGVpciB1c2UgaW4gbWljcm93YXZlcyBhbmQgb3ZlbnMsIHNvbWV0aGluZyB1bmNvbW1vbiBpbiBiaW9kZWdyYWRhYmxlIHBhY2thZ2luZyBtYWRlIGZyb20gb3RoZXIgcmF3IG1hdGVyaWFscyBsaWtlIGNhcmRib2FyZC4gVGhpcyByZXNpc3RhbmNlIGVuc3VyZXMgdGhlaXIgdXNlZnVsbmVzcyBpbiB0YWtlLWF3YXksIGNhdGVyaW5nLCBhbmQgcmVzdGF1cmFudHMuPC9wPgo8aDM+Q29tcGFyaXNvbiB3aXRoIHBsYXN0aWMgYW5kIGNhcmRib2FyZCBwYWNrYWdpbmc8L2gzPgo8dWw+CjxsaT48c3Ryb25nPkFnYWluc3QgcGxhc3RpYzo8L3N0cm9uZz4gU3VnYXJjYW5lIHBhY2thZ2luZyBkb2VzIG5vdCBnZW5lcmF0ZSBtaWNyb3BsYXN0aWNzLCBkb2VzIG5vdCByZXF1aXJlIHBldHJvbGV1bSwgbm9yIHJlbGVhc2VzIGhhcm1mdWwgc3Vic3RhbmNlcyB1cG9uIGRlZ3JhZGluZy4gVGhlaXIgcmVuZXdhYmxlIGNvbXBvc2l0aW9uIGFuZCBjYXBhY2l0eSB0byBiaW9kZWdyYWRlIHJlcHJlc2VudCBhIHNpZ25pZmljYW50IGltcHJvdmVtZW50IGluIHdhc3RlIG1hbmFnZW1lbnQuPC9saT4KPGxpPjxzdHJvbmc+QWdhaW5zdCBjYXJkYm9hcmQ6PC9zdHJvbmc+IFRoZXkgYXJlIG1vcmUgcmVzaXN0YW50LCBlc3BlY2lhbGx5IGluIGNvbnRhY3Qgd2l0aCBsaXF1aWRzIGFuZCBncmVhc2UuIFdoaWxlIGNhcmRib2FyZCBtYXkgc29mdGVuIG9yIGRpc2ludGVncmF0ZSwgc3VnYXJjYW5lIHBhY2thZ2luZyBtYWludGFpbnMgaXRzIHN0cnVjdHVyZSBhbmQgb2ZmZXJzIGdyZWF0ZXIgdmVyc2F0aWxpdHkgYXQgaGlnaCB0ZW1wZXJhdHVyZXMuPC9saT4KPC91bD4KPHA+SW4gc3VtbWFyeSwgY2hvb3Npbmcgc3VnYXJjYW5lIHBhY2thZ2luZyBtZWFucyBvcHRpbmcgZm9yIGEgc3VzdGFpbmFibGUgYW5kIHNhZmUgc29sdXRpb24sIHN1aXRhYmxlIGZvciBmb29kIHByZXNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb24gaW4gYSBjb250ZXh0IHRoYXQgaW5jcmVhc2luZ2x5IGRlbWFuZHMgZW52aXJvbm1lbnRhbCByZXNwb25zaWJpbGl0eS48L3A+CjxoMj5NYWluIHR5cGVzIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgYW5kIHRhYmxld2FyZTwvaDI+CjxwPlRoZSB2YXJpZXR5IG9mIHByb2R1Y3RzIG1hZGUgZnJvbSBzdWdhcmNhbmUgY2F0ZXJzIHRvIGRpZmZlcmVudCBuZWVkcyBpbiBmb29kIHByZXNlcnZhdGlvbiwgcHJlc2VudGF0aW9uLCBhbmQgdHJhbnNwb3J0YXRpb24uIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBtb3N0IGNvbW1vbiBhbmQgdmVyc2F0aWxlIG9wdGlvbnM6PC9wPgo8aDM+UmVjdGFuZ3VsYXIgY29udGFpbmVycyBhbmQgdHJheXM8L2gzPgo8cD5SZWN0YW5ndWxhciBjb250YWluZXJzIGFuZCB0cmF5cyBhcmUgdGhlIG1vc3QgY29tbW9uIHNvbHV0aW9uIGZvciBpbmRpdmlkdWFsIHNlcnZpbmdzLCBjb21ibyBtZW51cywgb3IgcGxhdGUgcHJlc2VudGF0aW9uLiBUaGVzZSBwYWNrYWdlcyBzdGFuZCBvdXQgZm9yIHRoZWlyIGZsYXQgYm90dG9tIGFuZCByZWluZm9yY2VkIGVkZ2VzLCBtYWtpbmcgaGFuZGxpbmcgYW5kIHN0b3JhZ2UgZWFzaWVyLiBUaGV5IGFyZSB1c2VkIGZvciBib3RoIGhvdCBhbmQgY29sZCBtZWFscyBhbmQgYXJlIHN1aXRhYmxlIGZvciBjYXJyeS1vdXQuPC9wPgo8aDM+Q29udGFpbmVycyB3aXRoIG9uZSBvciBtdWx0aXBsZSBjb21wYXJ0bWVudHM8L2gzPgo8cD5UaGVyZSBhcmUgcGFja2FnZXMgZGVzaWduZWQgd2l0aCBvbmUsIHR3bywgb3IgZXZlbiB0aHJlZSBjb21wYXJ0bWVudHMsIGlkZWFsIGZvciBzZXBhcmF0aW5nIGZvb2Qgd2l0aGluIGEgc2luZ2xlIHBhY2thZ2UgYW5kIGF2b2lkaW5nIHRoZSBtaXhpbmcgb2YgZmxhdm9ycyBhbmQgdGV4dHVyZXMuIFRoaXMgb3B0aW9uIGlzIGNvbW1vbiBpbiBjb21ibyBtZW51cywgY2Fycnktb3V0IGRpc2hlcywgb3IgY2F0ZXJpbmcgdHJheXMsIGVuc3VyaW5nIHRoYXQgZWFjaCBmb29kIHJldGFpbnMgYWxsIGl0cyBxdWFsaXRpZXMuPC9wPgo8aDM+VGFibGV3YXJlIGFuZCBtZW51IGNhcnJpZXJzPC9oMz4KPHA+VGhlIHRhYmxld2FyZSBvZmZlcmluZyBpbmNsdWRlcyBmbGF0IHBsYXRlcywgZGVlcCBwbGF0ZXMsIGJvd2xzLCBhbmQgbWVudSBjYXJyaWVycy4gQWxsIHRoZXNlIHByb2R1Y3RzIG9mZmVyIGEgcm9idXN0IGFuZCBuYXR1cmFsIGZpbmlzaCwgYmVpbmcgcmVzaXN0YW50IGFuZCBzdWl0YWJsZSBmb3IgaW50ZW5zaXZlIHVzZSBpbiBldmVudHMgb3IgaG9zcGl0YWxpdHkgc2VydmljZXMuIE1lbnUgY2FycmllcnMgYWxsb3cgZm9yIHRoZSBzYWZlIHRyYW5zcG9ydGF0aW9uIG9mIGNvbXBsZXRlIG1lYWxzLjwvcD4KPGgzPk9wdGlvbnMgd2l0aCBsaWRzIChQRVQsIFBQLCBhbmQgc3VnYXJjYW5lKTwvaDM+CjxwPlRvIGluY3JlYXNlIHZlcnNhdGlsaXR5LCBtYW55IHN1Z2FyY2FuZSBwYWNrYWdlcyBjYW4gaW5jb3Jwb3JhdGUgYSBsaWQuIFRoZSBsaWRzIGNhbiBiZSBQRVQgKHN1aXRhYmxlIGZvciB2aWV3aW5nIHRoZSBjb250ZW50cyksIFBQIChtb3JlIHJlc2lzdGFudCB0byBoaWdoIHRlbXBlcmF0dXJlcyksIG9yIGV2ZW4gdGhlIHNhbWUgcGxhbnQgbWF0ZXJpYWwsIGZ1cnRoZXIgZW5oYW5jaW5nIHRoZSBwYWNrYWdlJ3Mgc3VzdGFpbmFiaWxpdHkgYW5kIGFsbG93aW5nIGZvciB0aGUgc2VjdXJlIHRyYW5zcG9ydGF0aW9uIG9mIGxpcXVpZCBvciBicm90aHkgZm9vZHMuPC9wPgo8aDM+RGlmZmVyZW50IGNhcGFjaXRpZXMgYW5kIG1lYXN1cmVtZW50czwvaDM+CjxwPlRoZSByYW5nZSBpbmNsdWRlcyBzbWFsbCB0cmF5cyBmb3IgdGFwYXMgb3IgZGVzc2VydHMgdG8gbGFyZ2UtY2FwYWNpdHkgY29udGFpbmVycyBmb3IgbWFpbiBkaXNoZXMsIGNvbXBsZXRlIG1lbnVzLCBvciBsYXJnZSBzZXJ2aW5ncy4gVGhlIG1lYXN1cmVtZW50cyBhcmUgYWRhcHRlZCB0byBpbmRpdmlkdWFsIHBvcnRpb25zIGFuZCBmYW1pbHkgb3IgZ3JvdXAgcHJlc2VudGF0aW9ucy4gVGhpcyBhbGxvd3MgZm9yIG1lZXRpbmcgYWxsIG5lZWRzLCBmcm9tIHRha2UtYXdheSB0byBjb2xsZWN0aXZlIGV2ZW50cy48L3A+CjxwPlRoaXMgZGl2ZXJzaXR5IG1ha2VzIHN1Z2FyY2FuZSBwYWNrYWdpbmcgYWRhcHRhYmxlIHRvIGJvdGggaG9zcGl0YWxpdHksIGZvb2QgcmV0YWlsLCBhbmQgc3VzdGFpbmFibGUgZXZlbnRzLCBvZmZlcmluZyBlY29sb2dpY2FsIGFuZCBwcmFjdGljYWwgc29sdXRpb25zIGZvciBlYWNoIHNlcnZpY2UgZm9ybWF0LjwvcD4KPGgyPlVzZXMgYW5kIGFwcGxpY2F0aW9uczwvaDI+CjxoMz5Gb29kIHByZXNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb248L2gzPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGFsbG93cyBmb3IgdGhlIHNhZmUgcHJlc2VydmF0aW9uIG9mIGZyZXNoLCBjb29rZWQsIG9yIHByZWNvb2tlZCBmb29kcywgbWFpbnRhaW5pbmcgdGhlaXIgcXVhbGl0eSBhbmQgZmxhdm9yLiBUaGFua3MgdG8gdGhlaXIgcmVzaXN0YW50IHN0cnVjdHVyZSwgdGhlc2UgcGFja2FnZXMgd2l0aHN0YW5kIGxpcXVpZHMsIGdyZWFzZSwgYW5kIHNhdWNlcyB3aXRob3V0IGxvc2luZyB0aGVpciBpbnRlZ3JpdHksIG1ha2luZyB0aGVtIGlkZWFsIGZvciB0cmFuc3BvcnRpbmcgcHJlcGFyZWQgZGlzaGVzLCBob3Qgc2VydmluZ3MsIGFuZCBjb21wbGV0ZSBtZW51cy4gVGhleSBhcmUgc3VpdGFibGUgZm9yIHJlZnJpZ2VyYXRvcnMsIGZyZWV6ZXJzLCBtaWNyb3dhdmVzLCBhbmQgb3ZlbnMsIGZhY2lsaXRhdGluZyB0aGUgc3RvcmFnZSBhbmQgcmVoZWF0aW5nIG9mIGZvb2QgYXQgdmFyaW91cyBzZXJ2aWNlIHN0YWdlcy48L3A+CjxoMz5DYXRlcmluZywgdGFrZS1hd2F5LCBhbmQgZm9vZCBkZWxpdmVyeTwvaDM+CjxwPkluIHRoZSBjYXRlcmluZyBzZWN0b3IsIHN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgY29tbW9ucGxhY2UgaW4gdGFrZS1hd2F5IGVzdGFibGlzaG1lbnRzLCBkZWxpdmVyeSBzZXJ2aWNlcywgYmFycywgYW5kIGNhdGVyaW5nIHNlcnZpY2VzLiBUaGVpciBmdW5jdGlvbmFsIGRlc2lnbiBhbmQgcmFuZ2Ugb2YgZm9ybWF0cyBmYWNpbGl0YXRlIHRoZSBwcmVzZW50YXRpb24gYW5kIGRlbGl2ZXJ5IG9mIG1lYWxzIGZvciBib3RoIGRpcmVjdCBjb25zdW1wdGlvbiBhbmQgZGlzdHJpYnV0aW9uLiBBZGRpdGlvbmFsbHksIHRoZWlyIHJlc2lzdGFuY2UgYW5kIGFiaWxpdHkgdG8gbWFpbnRhaW4gdGhlIHRlbXBlcmF0dXJlIG9mIGZvb2QgY29udHJpYnV0ZSB0byBlbmhhbmNpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZS4gVGhlc2UgcGFja2FnZXMgbWVldCB0aGUgbmVlZHMgb2YgcHJvZmVzc2lvbmFsIGtpdGNoZW5zIGFuZCBzbWFsbCBidXNpbmVzc2VzLCBhZGFwdGluZyB0byB0aGUgcmh5dGhtcyBhbmQgZGVtYW5kcyBvZiBtb2Rlcm4gc2VydmljZS48L3A+CjxoMz5FY29sb2dpY2FsIGFuZCBzdXN0YWluYWJsZSBldmVudHM8L2gzPgo8cD5Gb3IgY2VsZWJyYXRpb25zLCBmYWlycywgYW5kIGNvbGxlY3RpdmUgZXZlbnRzIGNvbW1pdHRlZCB0byBzdXN0YWluYWJpbGl0eSwgc3VnYXJjYW5lIHBhY2thZ2luZyBwcmVzZW50cyB0aGUgYmVzdCBvcHRpb24gdG8gcmVkdWNlIHBsYXN0aWMgd2FzdGUgYW5kIHByb21vdGUgcmVzcG9uc2libGUgcHJhY3RpY2VzLiBUaGV5IGFyZSBhIHJlc3BlY3RmdWwgc29sdXRpb24gdGhhdCwgaW4gYWRkaXRpb24gdG8gb2ZmZXJpbmcgYSBjYXJlZnVsIHByZXNlbnRhdGlvbiwgYWxsb3dzIG9yZ2FuaXplcnMgdG8gY29tcGx5IHdpdGggaW5jcmVhc2luZ2x5IGRlbWFuZGluZyBlbnZpcm9ubWVudGFsIHJlZ3VsYXRpb25zLiBUaGVpciBlYXNlIG9mIGNvbXBvc3RpbmcgYW5kIG5hdHVyYWwgaW1hZ2UgZW5oYW5jZSB0aGUgZWNvbG9naWNhbCB2YWx1ZSBvZiBhbnkgZ2F0aGVyaW5nLCBhbGlnbmluZyB0aGUgb3JnYW5pemF0aW9uIHdpdGggYSB0cmVuZCBvZiBlbnZpcm9ubWVudGFsIHJlc3BvbnNpYmlsaXR5LjwvcD4KPHA+VGhlIHZlcnNhdGlsaXR5IGFuZCBmdW5jdGlvbmFsaXR5IG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgbWFrZSB0aGVtIGFsbGllcyBmb3IgYm90aCB0aGUgZm9vZCBpbmR1c3RyeSBhbmQgYW55IGluaXRpYXRpdmUgcmVxdWlyaW5nIHNhZmUsIGh5Z2llbmljLCBhbmQgc3VzdGFpbmFibGUgc29sdXRpb25zLjwvcD53DWNvcmUvZnJlZWZvcm13lFY8aDE+U3VnYXJjYW5lIFBhY2thZ2luZzogU3VzdGFpbmFiaWxpdHkgYW5kIEVjb2xvZ2ljYWwgQWR2YW50YWdlczwvaDE+CjxwPlN1Z2FyY2FuZSBwYWNrYWdpbmcgb2ZmZXJzIGEgc3VzdGFpbmFibGUgYWx0ZXJuYXRpdmUgZm9yIHByZXNlcnZpbmcgYW5kIHRyYW5zcG9ydGluZyBmb29kLiBNYWRlIGZyb20gcmVuZXdhYmxlIHBsYW50IHdhc3RlLCB0aGV5IG5hdHVyYWxseSBkZWdyYWRlIGFmdGVyIHVzZS4gVGhleSBhcmUgYW4gZWZmZWN0aXZlIG9wdGlvbiBmb3IgdGhvc2UgbG9va2luZyB0byByZWR1Y2UgdGhlaXIgZW52aXJvbm1lbnRhbCBpbXBhY3QgaW4gZGFpbHkgbGlmZSBhbmQgY2F0ZXJpbmcuPC9wPgo8aDI+V2hhdCBpcyBzdWdhcmNhbmUgcGFja2FnaW5nPzwvaDI+CjxwPjxzdHJvbmc+RGVmaW5pdGlvbiBvZiBzdWdhcmNhbmUgcGFja2FnaW5nPC9zdHJvbmc+PC9wPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGNvbnNpc3RzIG9mIGNvbnRhaW5lcnMgbWFkZSBmcm9tIGJhZ2Fzc2UsIHRoZSBwbGFudCBmaWJlciByZW1haW5pbmcgYWZ0ZXIgZXh0cmFjdGluZyBqdWljZSBmcm9tIHRoZSBjYW5lIHRvIHByb2R1Y2Ugc3VnYXIuIFRoaXMgcmF3IG1hdGVyaWFsIGlzIGFuIGFncmljdWx0dXJhbCBieXByb2R1Y3QsIG1ha2luZyB0aGVzZSBwYWNrYWdlcyBhIHN1c3RhaW5hYmxlIGNob2ljZSBhcyB0aGV5IHV0aWxpemUgcmVuZXdhYmxlIHdhc3RlIGFuZCBhdm9pZCB0aGUgdXNlIG9mIGZvc3NpbCByZXNvdXJjZXMuIFRoZXkgaGF2ZSBhIHJpZ2lkIGFuZCBuYXR1cmFsIGFwcGVhcmFuY2Ugc2ltaWxhciB0byBjYXJkYm9hcmQgYnV0IHdpdGggaGlnaGVyIHJlc2lzdGFuY2UgdG8gd2F0ZXIgYW5kIGdyZWFzZS4gVGhlaXIgY29tbW9uIHVzZSBpcyBmb3IgdGhlIGNvbnNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb24gb2YgZnJlc2ggYW5kIHByZXBhcmVkIGZvb2RzLjwvcD4KPHA+PHN0cm9uZz5CcmllZiBoaXN0b3J5IGFuZCBvcmlnaW4gb2YgdGhlc2UgZWNvLWZyaWVuZGx5IHBhY2thZ2VzPC9zdHJvbmc+PC9wPgo8cD5UaGUgdXNlIG9mIHN1Z2FyY2FuZSBmb3IgcGFja2FnaW5nIGFyb3NlIGZyb20gdGhlIG5lZWQgdG8gcmVkdWNlIHBsYXN0aWMgd2FzdGUgYW5kIG9wdCBmb3IgYmlvZGVncmFkYWJsZSBzb2x1dGlvbnMuIFRoZXNlIHBhY2thZ2VzIGJlZ2FuIHRvIGJlIGRldmVsb3BlZCBpbiByZWdpb25zIHdpdGggbGFyZ2Ugc3VnYXIgcHJvZHVjdGlvbiBhbmQgYWJ1bmRhbnQgYmFnYXNzZSwgbWFpbmx5IGluIEFzaWFuIGFuZCBMYXRpbiBBbWVyaWNhbiBjb3VudHJpZXMuIFRoZWlyIHBvcHVsYXJpdHkgaGFzIGdyb3duIGluIEV1cm9wZSBpbiByZWNlbnQgeWVhcnMgZHVlIHRvIGluY3JlYXNlZCBlbnZpcm9ubWVudGFsIGF3YXJlbmVzcywgcGxhc3RpYyByZXN0cmljdGlvbnMsIGFuZCBzdXN0YWluYWJpbGl0eSBwb2xpY2llcyBpbiBjYXRlcmluZyBhbmQgZm9vZCBzZXJ2aWNlcy48L3A+CjxwPjxzdHJvbmc+RGlmZmVyZW5jZXMgd2l0aCBvdGhlciB0eXBlcyBvZiBiaW9kZWdyYWRhYmxlIHBhY2thZ2luZzwvc3Ryb25nPjwvcD4KPHVsPgo8bGk+PHN0cm9uZz5SYXcgbWF0ZXJpYWw6PC9zdHJvbmc+IFdoaWxlIHN1Z2FyY2FuZSBwYWNrYWdpbmcgdXNlcyBwbGFudCBiYWdhc3NlLCBvdGhlciBiaW9kZWdyYWRhYmxlIHByb2R1Y3RzIGFyZSBvZnRlbiBtYWRlIGZyb20gcG90YXRvIHN0YXJjaCwgUExBIChwb2x5bGFjdGljIGFjaWQgZGVyaXZlZCBmcm9tIGNvcm4pLCBjYXJkYm9hcmQsIG9yIHJlY3ljbGVkIHBhcGVyLjwvbGk+CjxsaT48c3Ryb25nPlByb3BlcnRpZXM6PC9zdHJvbmc+IFN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgbm90ZWQgZm9yIGl0cyBoaWdoZXIgcmVzaXN0YW5jZSB0byBoaWdoIHRlbXBlcmF0dXJlcyBhbmQgbW9pc3R1cmUuIFVubGlrZSBzb21lIGJpb3BsYXN0aWNzLCB0aGV5IGNhbiB3aXRoc3RhbmQgbWljcm93YXZlcyBhbmQgb3ZlbnMuPC9saT4KPGxpPjxzdHJvbmc+RGVncmFkYXRpb246PC9zdHJvbmc+IFRoZXkgYmlvZGVncmFkZSBxdWlja2x5IGFuZCBjb21wbGV0ZWx5IGluIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLCBkaWZmZXJlbnRpYXRpbmcgdGhlbXNlbHZlcyBmcm9tIHBsYXN0aWMtY29hdGVkIGNhcmRib2FyZCBvciBiaW9wbGFzdGljIHRoYXQgbWF5IHJlcXVpcmUgbW9yZSBzcGVjaWZpYyBwcm9jZXNzZXMuPC9saT4KPGxpPjxzdHJvbmc+QXBwZWFyYW5jZSBhbmQgdGV4dHVyZTo8L3N0cm9uZz4gVGhleSBvZmZlciBhIHJpZ2lkIHRleHR1cmUgYW5kIG5hdHVyYWwgY29sb3IsIHdoaWxlIG90aGVyIGJpb2RlZ3JhZGFibGVzIG1heSBiZSB0cmFuc3BhcmVudCAoUExBKSBvciBsZXNzIHJvYnVzdCAodGhpbiBjYXJkYm9hcmQpLjwvbGk+CjwvdWw+CjxwPlRoaXMgdHlwZSBvZiBwYWNrYWdpbmcgbWVldHMgdGhlIGRlbWFuZCBmb3Igc3VzdGFpbmFibGUgb3B0aW9ucyB3aXRob3V0IHNhY3JpZmljaW5nIGZ1bmN0aW9uYWxpdHkgYW5kIHNhZmV0eSBpbiBmb29kIGNvbnRhY3QsIHRodXMgcGxheWluZyBhIGtleSByb2xlIGluIHRoZSB0cmFuc2l0aW9uIHRvIGEgY2lyY3VsYXIgZWNvbm9teS48L3A+CjxoMj5TdWdhcmNhbmUgcGFja2FnaW5nIG1hbnVmYWN0dXJpbmcgcHJvY2VzczwvaDI+CjxoMz5SYXcgbWF0ZXJpYWxzIHVzZWQ8L2gzPgo8cD5UaGUgYmFzZSBvZiBzdWdhcmNhbmUgcGFja2FnaW5nIGlzIGJhZ2Fzc2UsIHRoZSByZXNpZHVhbCBwbGFudCBmaWJlciBhZnRlciBqdWljZSBleHRyYWN0aW9uIGZyb20gdGhlIGNhbmUuIEluc3RlYWQgb2YgYmVpbmcgZGlzY2FyZGVkLCB0aGlzIGFncmljdWx0dXJhbCBieXByb2R1Y3QgaXMgcmV1c2VkIHRvIGNyZWF0ZSBhIGZpYnJvdXMgbWFzcy4gVGhlIHByb2Nlc3MgZG9lcyBub3QgYWRkIHBsYXN0aWNzIG9yIHRveGljIGNoZW1pY2FscywgZW5zdXJpbmcgdGhlIG1hdGVyaWFsJ3MgcHVyaXR5IGFuZCBzdWl0YWJpbGl0eSBmb3IgZm9vZCBjb250YWN0LiBXYXRlciBhbmQgc29tZSBuYXR1cmFsIGFkZGl0aXZlcyBtYXkgYmUgaW5jb3Jwb3JhdGVkIHRvIGltcHJvdmUgdGhlIGNvaGVzaW9uIGFuZCBtb2xkYWJpbGl0eSBvZiB0aGUgZmliZXIsIGFsd2F5cyBmb2xsb3dpbmcgc3VzdGFpbmFiaWxpdHkgY3JpdGVyaWEuPC9wPgo8aDM+TWFpbiBwcm9kdWN0aW9uIHN0YWdlczwvaDM+CjxvbD4KPGxpPjxzdHJvbmc+Q29sbGVjdGlvbiBhbmQgY2xlYW5pbmcgb2YgYmFnYXNzZTo8L3N0cm9uZz4gQWZ0ZXIganVpY2UgZXh0cmFjdGlvbiwgdGhlIGZpYmVyIGlzIGNsZWFuZWQgdG8gcmVtb3ZlIGltcHVyaXRpZXMgYW5kIHJlc2lkdWVzLjwvbGk+CjxsaT48c3Ryb25nPkdyaW5kaW5nOjwvc3Ryb25nPiBUaGUgYmFnYXNzZSBpcyBncm91bmQgdG8gb2J0YWluIGEgaG9tb2dlbmVvdXMgcHVscC48L2xpPgo8bGk+PHN0cm9uZz5NaXhpbmcgYW5kIGtuZWFkaW5nOjwvc3Ryb25nPiBUaGUgcHVscCBpcyBtaXhlZCB3aXRoIHdhdGVyIGFuZCBzb21ldGltZXMgbmF0dXJhbCBhZGRpdGl2ZXMgdG8gZW5oYW5jZSByZXNpc3RhbmNlIGFuZCBmYWNpbGl0YXRlIG1vbGRpbmcuPC9saT4KPGxpPjxzdHJvbmc+UHJlc3N1cmUgYW5kIGhlYXQgbW9sZGluZzo8L3N0cm9uZz4gVGhlIG1peHR1cmUgaXMgcGxhY2VkIGluIG1vbGRzIGFuZCBzdWJqZWN0ZWQgdG8gcHJlc3N1cmUgYW5kIGhpZ2ggdGVtcGVyYXR1cmVzIHRvIHNoYXBlIHRoZSBwYWNrYWdpbmcuIFRoaXMgZW5zdXJlcyByaWdpZGl0eSBhbmQgdGhlIGZpbmFsIGZpbmlzaC48L2xpPgo8bGk+PHN0cm9uZz5EcnlpbmcgYW5kIHRyaW1taW5nOjwvc3Ryb25nPiBUaGUgcHJvZHVjdCBpcyB0aG9yb3VnaGx5IGRyaWVkLCBhbmQgZXhjZXNzIG1hdGVyaWFsIGlzIHJlbW92ZWQgYmVmb3JlIG1vdmluZyB0byBxdWFsaXR5IGNvbnRyb2wuPC9saT4KPGxpPjxzdHJvbmc+UGFja2FnaW5nOjwvc3Ryb25nPiBPbmNlIGl0cyByZXNpc3RhbmNlIGlzIHZlcmlmaWVkLCB0aGUgcGFja2FnaW5nIGlzIHBhY2tlZCBmb3IgZGlzdHJpYnV0aW9uLjwvbGk+Cjwvb2w+CjxoMz5BY2hpZXZpbmcgYmlvZGVncmFkYWJpbGl0eTwvaDM+CjxwPlRoZSBiaW9kZWdyYWRhYmlsaXR5IG9mIHRoZXNlIHBhY2thZ2VzIGNvbWVzIGZyb20gdGhlaXIgMTAwJSBwbGFudCBjb21wb3NpdGlvbiwgd2l0aG91dCBwbGFzdGljIGNvbXBvbmVudHMuIFRoYW5rcyB0byB0aGUgc3RydWN0dXJlIG9mIHRoZSBiYWdhc3NlIGFuZCB0aGUgYWJzZW5jZSBvZiBzeW50aGV0aWMgY29hdGluZ3MsIHRoZXNlIHBhY2thZ2VzIGNhbiBkZWNvbXBvc2UgaW4gYSBmZXcgd2Vla3MgdW5kZXIgaW5kdXN0cmlhbCBjb21wb3N0aW5nIGNvbmRpdGlvbnMuIFRoZSBtYW51ZmFjdHVyaW5nIHByb2Nlc3MgcmVzcGVjdHMgdGhlIG9yaWdpbmFsIHByb3BlcnRpZXMgb2YgdGhlIGZpYmVyIHNvIHRoYXQgYWZ0ZXIgdXNlLCB0aGUgcGFja2FnaW5nIGJlY29tZXMgb3JnYW5pYyBtYXR0ZXIsIHRodXMgY2xvc2luZyB0aGUgbmF0dXJhbCBjeWNsZSBhbmQgYWxpZ25pbmcgd2l0aCBjaXJjdWxhciBlY29ub215IHByaW5jaXBsZXMuIEFkZGl0aW9uYWxseSwgdGhlIGFic2VuY2Ugb2YgdG94aWMgZWxlbWVudHMgZW5zdXJlcyB0aGF0IGFmdGVyIGJpb2RlZ3JhZGF0aW9uLCBubyBoYXJtZnVsIHN1YnN0YW5jZXMgYXJlIHJlbGVhc2VkIGludG8gdGhlIGVudmlyb25tZW50LjwvcD4KPGgyPkFkdmFudGFnZXMgb2Ygc3VnYXJjYW5lIHBhY2thZ2luZzwvaDI+CjxoMz5FY28tZnJpZW5kbHkgYW5kIGJpb2RlZ3JhZGFibGU8L2gzPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGlzIGEgbW9yZSBlY28tZnJpZW5kbHkgYWx0ZXJuYXRpdmUgY29tcGFyZWQgdG8gY29udmVudGlvbmFsIHBsYXN0aWNzLiBUaGVpciBwbGFudCBvcmlnaW4gYW5kIHRoZSB1c2Ugb2YgYmFnYXNzZSByZWR1Y2UgdGhlIGNvbnN1bXB0aW9uIG9mIGZvc3NpbCByZXNvdXJjZXMgYW5kIHV0aWxpemUgYWdyaWN1bHR1cmFsIHdhc3RlLiBCZWluZyBjb21wbGV0ZWx5IGJpb2RlZ3JhZGFibGUsIHRoZXNlIHBhY2thZ2VzIGNhbiBicmVhayBkb3duIGluIGEgZmV3IHdlZWtzIHVuZGVyIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLCBiZWNvbWluZyBvcmdhbmljIG1hdHRlciB3aXRob3V0IGxlYXZpbmcgdG94aWMgcmVzaWR1ZXMuIFRodXMsIHRoZXkgY29udHJpYnV0ZSB0byB3YXN0ZSByZWR1Y3Rpb24gYW5kIGVudmlyb25tZW50YWwgaW1wcm92ZW1lbnQuPC9wPgo8aDM+U3VpdGFibGUgZm9yIGZvb2QgdXNlPC9oMz4KPHA+VGhlc2UgcGFja2FnZXMgYXJlIGRlc2lnbmVkIGZvciBkaXJlY3QgY29udGFjdCB3aXRoIGJvdGggY29sZCBhbmQgaG90IGZvb2RzLiBUaGV5IGRvIG5vdCBhbHRlciB0aGUgdGFzdGUgb3IgcHJvcGVydGllcyBvZiB0aGUgcHJvZHVjdHMgdGhleSBjb250YWluIGFuZCBjb21wbHkgd2l0aCBFdXJvcGVhbiByZWd1bGF0aW9ucyBmb3IgZm9vZCBwYWNrYWdpbmcsIHByb3ZpZGluZyBzYWZldHkgYW5kIGh5Z2llbmUuIFRoZSBhYnNlbmNlIG9mIHBsYXN0aWNzIG9yIHRveGljIGFkZGl0aXZlcyBpcyBjcnVjaWFsIGZvciB0aGVpciBldmVyeWRheSB1c2UgaW4gdGhlIGZvb2Qgc2VjdG9yLjwvcD4KPGgzPlJlc2lzdGFuY2UgdG8gZ3JlYXNlLCBsaXF1aWRzLCBhbmQgaGlnaCB0ZW1wZXJhdHVyZXM8L2gzPgo8cD5PbmUgb2YgdGhlIG1haW4gYWR2YW50YWdlcyBvZiBzdWdhcmNhbmUgcGFja2FnaW5nIGlzIGl0cyByZXNpc3RhbmNlLiBUaGUgcGxhbnQgZmliZXIgaXMgaW1wZXJtZWFibGUgdG8gZ3JlYXNlIGFuZCBsaXF1aWRzLCBwcmV2ZW50aW5nIGxlYWtzIGFuZCBkcmlwcyBkdXJpbmcgZm9vZCB0cmFuc3BvcnRhdGlvbi4gTW9yZW92ZXIsIHRoZXkgd2l0aHN0YW5kIGhpZ2ggdGVtcGVyYXR1cmVzLCBhbGxvd2luZyB0aGVpciB1c2UgaW4gbWljcm93YXZlcyBhbmQgb3ZlbnMsIHNvbWV0aGluZyB1bmNvbW1vbiBpbiBiaW9kZWdyYWRhYmxlIHBhY2thZ2luZyBtYWRlIGZyb20gb3RoZXIgcmF3IG1hdGVyaWFscyBsaWtlIGNhcmRib2FyZC4gVGhpcyByZXNpc3RhbmNlIGVuc3VyZXMgdGhlaXIgdXNlZnVsbmVzcyBpbiB0YWtlLWF3YXksIGNhdGVyaW5nLCBhbmQgcmVzdGF1cmFudHMuPC9wPgo8aDM+Q29tcGFyaXNvbiB3aXRoIHBsYXN0aWMgYW5kIGNhcmRib2FyZCBwYWNrYWdpbmc8L2gzPgo8dWw+CjxsaT48c3Ryb25nPkFnYWluc3QgcGxhc3RpYzo8L3N0cm9uZz4gU3VnYXJjYW5lIHBhY2thZ2luZyBkb2VzIG5vdCBnZW5lcmF0ZSBtaWNyb3BsYXN0aWNzLCBkb2VzIG5vdCByZXF1aXJlIHBldHJvbGV1bSwgbm9yIHJlbGVhc2VzIGhhcm1mdWwgc3Vic3RhbmNlcyB1cG9uIGRlZ3JhZGluZy4gVGhlaXIgcmVuZXdhYmxlIGNvbXBvc2l0aW9uIGFuZCBjYXBhY2l0eSB0byBiaW9kZWdyYWRlIHJlcHJlc2VudCBhIHNpZ25pZmljYW50IGltcHJvdmVtZW50IGluIHdhc3RlIG1hbmFnZW1lbnQuPC9saT4KPGxpPjxzdHJvbmc+QWdhaW5zdCBjYXJkYm9hcmQ6PC9zdHJvbmc+IFRoZXkgYXJlIG1vcmUgcmVzaXN0YW50LCBlc3BlY2lhbGx5IGluIGNvbnRhY3Qgd2l0aCBsaXF1aWRzIGFuZCBncmVhc2UuIFdoaWxlIGNhcmRib2FyZCBtYXkgc29mdGVuIG9yIGRpc2ludGVncmF0ZSwgc3VnYXJjYW5lIHBhY2thZ2luZyBtYWludGFpbnMgaXRzIHN0cnVjdHVyZSBhbmQgb2ZmZXJzIGdyZWF0ZXIgdmVyc2F0aWxpdHkgYXQgaGlnaCB0ZW1wZXJhdHVyZXMuPC9saT4KPC91bD4KPHA+SW4gc3VtbWFyeSwgY2hvb3Npbmcgc3VnYXJjYW5lIHBhY2thZ2luZyBtZWFucyBvcHRpbmcgZm9yIGEgc3VzdGFpbmFibGUgYW5kIHNhZmUgc29sdXRpb24sIHN1aXRhYmxlIGZvciBmb29kIHByZXNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb24gaW4gYSBjb250ZXh0IHRoYXQgaW5jcmVhc2luZ2x5IGRlbWFuZHMgZW52aXJvbm1lbnRhbCByZXNwb25zaWJpbGl0eS48L3A+CjxoMj5NYWluIHR5cGVzIG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgYW5kIHRhYmxld2FyZTwvaDI+CjxwPlRoZSB2YXJpZXR5IG9mIHByb2R1Y3RzIG1hZGUgZnJvbSBzdWdhcmNhbmUgY2F0ZXJzIHRvIGRpZmZlcmVudCBuZWVkcyBpbiBmb29kIHByZXNlcnZhdGlvbiwgcHJlc2VudGF0aW9uLCBhbmQgdHJhbnNwb3J0YXRpb24uIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBtb3N0IGNvbW1vbiBhbmQgdmVyc2F0aWxlIG9wdGlvbnM6PC9wPgo8aDM+UmVjdGFuZ3VsYXIgY29udGFpbmVycyBhbmQgdHJheXM8L2gzPgo8cD5SZWN0YW5ndWxhciBjb250YWluZXJzIGFuZCB0cmF5cyBhcmUgdGhlIG1vc3QgY29tbW9uIHNvbHV0aW9uIGZvciBpbmRpdmlkdWFsIHNlcnZpbmdzLCBjb21ibyBtZW51cywgb3IgcGxhdGUgcHJlc2VudGF0aW9uLiBUaGVzZSBwYWNrYWdlcyBzdGFuZCBvdXQgZm9yIHRoZWlyIGZsYXQgYm90dG9tIGFuZCByZWluZm9yY2VkIGVkZ2VzLCBtYWtpbmcgaGFuZGxpbmcgYW5kIHN0b3JhZ2UgZWFzaWVyLiBUaGV5IGFyZSB1c2VkIGZvciBib3RoIGhvdCBhbmQgY29sZCBtZWFscyBhbmQgYXJlIHN1aXRhYmxlIGZvciBjYXJyeS1vdXQuPC9wPgo8aDM+Q29udGFpbmVycyB3aXRoIG9uZSBvciBtdWx0aXBsZSBjb21wYXJ0bWVudHM8L2gzPgo8cD5UaGVyZSBhcmUgcGFja2FnZXMgZGVzaWduZWQgd2l0aCBvbmUsIHR3bywgb3IgZXZlbiB0aHJlZSBjb21wYXJ0bWVudHMsIGlkZWFsIGZvciBzZXBhcmF0aW5nIGZvb2Qgd2l0aGluIGEgc2luZ2xlIHBhY2thZ2UgYW5kIGF2b2lkaW5nIHRoZSBtaXhpbmcgb2YgZmxhdm9ycyBhbmQgdGV4dHVyZXMuIFRoaXMgb3B0aW9uIGlzIGNvbW1vbiBpbiBjb21ibyBtZW51cywgY2Fycnktb3V0IGRpc2hlcywgb3IgY2F0ZXJpbmcgdHJheXMsIGVuc3VyaW5nIHRoYXQgZWFjaCBmb29kIHJldGFpbnMgYWxsIGl0cyBxdWFsaXRpZXMuPC9wPgo8aDM+VGFibGV3YXJlIGFuZCBtZW51IGNhcnJpZXJzPC9oMz4KPHA+VGhlIHRhYmxld2FyZSBvZmZlcmluZyBpbmNsdWRlcyBmbGF0IHBsYXRlcywgZGVlcCBwbGF0ZXMsIGJvd2xzLCBhbmQgbWVudSBjYXJyaWVycy4gQWxsIHRoZXNlIHByb2R1Y3RzIG9mZmVyIGEgcm9idXN0IGFuZCBuYXR1cmFsIGZpbmlzaCwgYmVpbmcgcmVzaXN0YW50IGFuZCBzdWl0YWJsZSBmb3IgaW50ZW5zaXZlIHVzZSBpbiBldmVudHMgb3IgaG9zcGl0YWxpdHkgc2VydmljZXMuIE1lbnUgY2FycmllcnMgYWxsb3cgZm9yIHRoZSBzYWZlIHRyYW5zcG9ydGF0aW9uIG9mIGNvbXBsZXRlIG1lYWxzLjwvcD4KPGgzPk9wdGlvbnMgd2l0aCBsaWRzIChQRVQsIFBQLCBhbmQgc3VnYXJjYW5lKTwvaDM+CjxwPlRvIGluY3JlYXNlIHZlcnNhdGlsaXR5LCBtYW55IHN1Z2FyY2FuZSBwYWNrYWdlcyBjYW4gaW5jb3Jwb3JhdGUgYSBsaWQuIFRoZSBsaWRzIGNhbiBiZSBQRVQgKHN1aXRhYmxlIGZvciB2aWV3aW5nIHRoZSBjb250ZW50cyksIFBQIChtb3JlIHJlc2lzdGFudCB0byBoaWdoIHRlbXBlcmF0dXJlcyksIG9yIGV2ZW4gdGhlIHNhbWUgcGxhbnQgbWF0ZXJpYWwsIGZ1cnRoZXIgZW5oYW5jaW5nIHRoZSBwYWNrYWdlJ3Mgc3VzdGFpbmFiaWxpdHkgYW5kIGFsbG93aW5nIGZvciB0aGUgc2VjdXJlIHRyYW5zcG9ydGF0aW9uIG9mIGxpcXVpZCBvciBicm90aHkgZm9vZHMuPC9wPgo8aDM+RGlmZmVyZW50IGNhcGFjaXRpZXMgYW5kIG1lYXN1cmVtZW50czwvaDM+CjxwPlRoZSByYW5nZSBpbmNsdWRlcyBzbWFsbCB0cmF5cyBmb3IgdGFwYXMgb3IgZGVzc2VydHMgdG8gbGFyZ2UtY2FwYWNpdHkgY29udGFpbmVycyBmb3IgbWFpbiBkaXNoZXMsIGNvbXBsZXRlIG1lbnVzLCBvciBsYXJnZSBzZXJ2aW5ncy4gVGhlIG1lYXN1cmVtZW50cyBhcmUgYWRhcHRlZCB0byBpbmRpdmlkdWFsIHBvcnRpb25zIGFuZCBmYW1pbHkgb3IgZ3JvdXAgcHJlc2VudGF0aW9ucy4gVGhpcyBhbGxvd3MgZm9yIG1lZXRpbmcgYWxsIG5lZWRzLCBmcm9tIHRha2UtYXdheSB0byBjb2xsZWN0aXZlIGV2ZW50cy48L3A+CjxwPlRoaXMgZGl2ZXJzaXR5IG1ha2VzIHN1Z2FyY2FuZSBwYWNrYWdpbmcgYWRhcHRhYmxlIHRvIGJvdGggaG9zcGl0YWxpdHksIGZvb2QgcmV0YWlsLCBhbmQgc3VzdGFpbmFibGUgZXZlbnRzLCBvZmZlcmluZyBlY29sb2dpY2FsIGFuZCBwcmFjdGljYWwgc29sdXRpb25zIGZvciBlYWNoIHNlcnZpY2UgZm9ybWF0LjwvcD4KPGgyPlVzZXMgYW5kIGFwcGxpY2F0aW9uczwvaDI+CjxoMz5Gb29kIHByZXNlcnZhdGlvbiBhbmQgdHJhbnNwb3J0YXRpb248L2gzPgo8cD5TdWdhcmNhbmUgcGFja2FnaW5nIGFsbG93cyBmb3IgdGhlIHNhZmUgcHJlc2VydmF0aW9uIG9mIGZyZXNoLCBjb29rZWQsIG9yIHByZWNvb2tlZCBmb29kcywgbWFpbnRhaW5pbmcgdGhlaXIgcXVhbGl0eSBhbmQgZmxhdm9yLiBUaGFua3MgdG8gdGhlaXIgcmVzaXN0YW50IHN0cnVjdHVyZSwgdGhlc2UgcGFja2FnZXMgd2l0aHN0YW5kIGxpcXVpZHMsIGdyZWFzZSwgYW5kIHNhdWNlcyB3aXRob3V0IGxvc2luZyB0aGVpciBpbnRlZ3JpdHksIG1ha2luZyB0aGVtIGlkZWFsIGZvciB0cmFuc3BvcnRpbmcgcHJlcGFyZWQgZGlzaGVzLCBob3Qgc2VydmluZ3MsIGFuZCBjb21wbGV0ZSBtZW51cy4gVGhleSBhcmUgc3VpdGFibGUgZm9yIHJlZnJpZ2VyYXRvcnMsIGZyZWV6ZXJzLCBtaWNyb3dhdmVzLCBhbmQgb3ZlbnMsIGZhY2lsaXRhdGluZyB0aGUgc3RvcmFnZSBhbmQgcmVoZWF0aW5nIG9mIGZvb2QgYXQgdmFyaW91cyBzZXJ2aWNlIHN0YWdlcy48L3A+CjxoMz5DYXRlcmluZywgdGFrZS1hd2F5LCBhbmQgZm9vZCBkZWxpdmVyeTwvaDM+CjxwPkluIHRoZSBjYXRlcmluZyBzZWN0b3IsIHN1Z2FyY2FuZSBwYWNrYWdpbmcgaXMgY29tbW9ucGxhY2UgaW4gdGFrZS1hd2F5IGVzdGFibGlzaG1lbnRzLCBkZWxpdmVyeSBzZXJ2aWNlcywgYmFycywgYW5kIGNhdGVyaW5nIHNlcnZpY2VzLiBUaGVpciBmdW5jdGlvbmFsIGRlc2lnbiBhbmQgcmFuZ2Ugb2YgZm9ybWF0cyBmYWNpbGl0YXRlIHRoZSBwcmVzZW50YXRpb24gYW5kIGRlbGl2ZXJ5IG9mIG1lYWxzIGZvciBib3RoIGRpcmVjdCBjb25zdW1wdGlvbiBhbmQgZGlzdHJpYnV0aW9uLiBBZGRpdGlvbmFsbHksIHRoZWlyIHJlc2lzdGFuY2UgYW5kIGFiaWxpdHkgdG8gbWFpbnRhaW4gdGhlIHRlbXBlcmF0dXJlIG9mIGZvb2QgY29udHJpYnV0ZSB0byBlbmhhbmNpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZS4gVGhlc2UgcGFja2FnZXMgbWVldCB0aGUgbmVlZHMgb2YgcHJvZmVzc2lvbmFsIGtpdGNoZW5zIGFuZCBzbWFsbCBidXNpbmVzc2VzLCBhZGFwdGluZyB0byB0aGUgcmh5dGhtcyBhbmQgZGVtYW5kcyBvZiBtb2Rlcm4gc2VydmljZS48L3A+CjxoMz5FY29sb2dpY2FsIGFuZCBzdXN0YWluYWJsZSBldmVudHM8L2gzPgo8cD5Gb3IgY2VsZWJyYXRpb25zLCBmYWlycywgYW5kIGNvbGxlY3RpdmUgZXZlbnRzIGNvbW1pdHRlZCB0byBzdXN0YWluYWJpbGl0eSwgc3VnYXJjYW5lIHBhY2thZ2luZyBwcmVzZW50cyB0aGUgYmVzdCBvcHRpb24gdG8gcmVkdWNlIHBsYXN0aWMgd2FzdGUgYW5kIHByb21vdGUgcmVzcG9uc2libGUgcHJhY3RpY2VzLiBUaGV5IGFyZSBhIHJlc3BlY3RmdWwgc29sdXRpb24gdGhhdCwgaW4gYWRkaXRpb24gdG8gb2ZmZXJpbmcgYSBjYXJlZnVsIHByZXNlbnRhdGlvbiwgYWxsb3dzIG9yZ2FuaXplcnMgdG8gY29tcGx5IHdpdGggaW5jcmVhc2luZ2x5IGRlbWFuZGluZyBlbnZpcm9ubWVudGFsIHJlZ3VsYXRpb25zLiBUaGVpciBlYXNlIG9mIGNvbXBvc3RpbmcgYW5kIG5hdHVyYWwgaW1hZ2UgZW5oYW5jZSB0aGUgZWNvbG9naWNhbCB2YWx1ZSBvZiBhbnkgZ2F0aGVyaW5nLCBhbGlnbmluZyB0aGUgb3JnYW5pemF0aW9uIHdpdGggYSB0cmVuZCBvZiBlbnZpcm9ubWVudGFsIHJlc3BvbnNpYmlsaXR5LjwvcD4KPHA+VGhlIHZlcnNhdGlsaXR5IGFuZCBmdW5jdGlvbmFsaXR5IG9mIHN1Z2FyY2FuZSBwYWNrYWdpbmcgbWFrZSB0aGVtIGFsbGllcyBmb3IgYm90aCB0aGUgZm9vZCBpbmR1c3RyeSBhbmQgYW55IGluaXRpYXRpdmUgcmVxdWlyaW5nIHNhZmUsIGh5Z2llbmljLCBhbmQgc3VzdGFpbmFibGUgc29sdXRpb25zLjwvcD53A3NldHcTMjAyNi0wNC0yOVQxMDozMDoxM3tCed2FwwlAAH2y2OLSBXckOWZmMmYxYWEtNGNkZS00YmFiLTk3MzgtOTg0NWFmNDBhY2E1dwxjb3JlL2hlYWRpbmd9AXckM2EyYzQ1Y2UtMmZjZS00ODVhLWI0YWQtODg3OWRjYmEzZGNjeHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JGY4YzMxMWViLWFmYjAtNDI4MC04NjNhLWFlMGMwZjc2NDFiNHh3DGNvcmUvaGVhZGluZ30CdyRhZDQ3ZDBlZS05YTZkLTQ5YmYtODM1OC03YjViMDA4OGEwYmZ4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckMTk1MTFhYzAtZDg2Mi00MDA2LWI2ZTMtMDBmYmY1NWIxYzkweHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDFjOTI2YjFhLTVkODUtNDY4MS1hOGQ5LTE3OTliM2JiMWE3NHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQyNjUwYzljZC05NjgzLTRiNjctYjNmMS03MDlhOWFjNmFlNGN4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckMjUxYWViZTktYmEwNi00NGZmLWE3ZDUtYmI0NjRlNTQ5YTM2eHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDFjNGUzNGMzLTkyYjYtNDgzMy05YTk2LTAyNDc3MzA2ODlmYnh3CWNvcmUvbGlzdHl3AHckZDgxZTM3NTEtMjg4NS00MGI5LTlkYjktODAwMTg4ODE1MDI3eHcOY29yZS9saXN0LWl0ZW13JDM4YzNkYTU0LTQ1ZDctNGUyNy1hNzU1LWY0NmYzYmU2M2E2MHh3DmNvcmUvbGlzdC1pdGVtdyQ4ZWUwOTFmMy1jODFjLTRiYzUtOWYwNi1mYjVmN2NmNjc4YTl4dw5jb3JlL2xpc3QtaXRlbXckOWZhNzhmOGQtNWFlMy00ZmIzLWI2ZDMtODY5MWQyZDRhZmE2eHcOY29yZS9saXN0LWl0ZW13JDY3OWJjMmM4LWIzNmEtNDJiOS1iMzhmLWE2ZTRlZjQ5NGYxMHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQxMDI2YmQzMS03YTE0LTQ5OWEtYWE0OS04YmZjOGNiNzU5ODZ4dwxjb3JlL2hlYWRpbmd9AnckY2YzNmEzNDYtNDZlYS00YjNlLWFmYmMtOTIxNDQ5YmUwZjhheHcMY29yZS9oZWFkaW5nfQN3JDJiMzA5NjY4LTliZjktNDhkYi1hNDQ4LTU4NzFkNWVlOWMwNnh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRiYzc1ZGQxNy0yYjBmLTQ2YmEtOTY3Ni04ZTk0NDQxOWVjZDV4dwxjb3JlL2hlYWRpbmd9A3ckZjcxYzhkN2YtMWYwZC00ZDRlLTk4NjAtNDE0YzBjYjA0NWE1eHcJY29yZS9saXN0eHcAdyQzNWVkZDdmYy00MjM3LTQyOTgtYTg2Yy1hNWFiZDI5YzAwZmV4dw5jb3JlL2xpc3QtaXRlbXckZDY0NTk1OWMtMTAwYS00YmExLTkzODItNTM0YmVkYjc1Y2E1eHcOY29yZS9saXN0LWl0ZW13JGJiNjZkNTRkLWVlNzMtNGNkNC05NzllLWYzMTRiZGE3OWY3NHh3DmNvcmUvbGlzdC1pdGVtdyRiMGE2OWU3YS01YzE0LTQwMmMtYTcwOS1kMDdlOWNlOTJkYmJ4dw5jb3JlL2xpc3QtaXRlbXckYjg3ZTdmNzgtYWY3NS00ZWVmLWIwMjMtZmVlNjQxYjhhM2E4eHcOY29yZS9saXN0LWl0ZW13JDYxODVmM2E5LWU3MDMtNDVhNy04ZGMzLWRhOWRlZDRjNDE3OXh3DmNvcmUvbGlzdC1pdGVtdyQyZjU4MGIzYy01ZDQ1LTQ5OGItODIwNS0xNGQ4ZjU3MTMzMmF4dwxjb3JlL2hlYWRpbmd9A3ckMTI1YmNkMTEtMjMwOS00ZGE1LTlhMjQtZGMxZWJkZjllYTZleHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDZlZTViZDYyLWE2NzItNGIxNy04NWMzLTkyZjBlNmFjZTkxNHh3DGNvcmUvaGVhZGluZ30CdyQwMDI2MDgzZi01NTUyLTRmNmYtOGRhMy00ODkyODRkYzdjNzd4dwxjb3JlL2hlYWRpbmd9A3ckN2E0MjkzZTAtNTA3YS00MGRiLTg0Y2EtNDRhNzE1NzQ0MWZheHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDViN2FiZjhmLTNkNjYtNGI1My1hMDA2LWNhNGY4Mzk5NDU5MXh3DGNvcmUvaGVhZGluZ30DdyQ3NWExOTkxMS1hZWZiLTQxNjQtOWRlOC1lZDc2ODE2Yzk5NTh4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckMmI2YzAwZDUtYzY2Yi00MWZkLWE1YjQtMDdmMTZhMTI4MTFieHcMY29yZS9oZWFkaW5nfQN3JDFjMDg0MjQyLTgwNDAtNGVkNy1iOGViLTFlMWE3NGI1ZGM3Nnh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQwYzI4NzJiOC1hMDY4LTRhOWItOTlkNy0xZTc1OTNjMGNlMjB4dwxjb3JlL2hlYWRpbmd9A3ckMzQxY2JkOTYtYTZhOC00ZGQ1LTg5MjMtNGI2ZDQ0M2U4MDE5eHcJY29yZS9saXN0eXcAdyQ0NzZkYjIyNC0zYTJkLTQyZmUtYTMxMS1jYjY5ZDYxNzIzOWV4dw5jb3JlL2xpc3QtaXRlbXckYmQ1NGIyMjgtYzE2My00YjYwLTk2ODUtNDEwNzU4ZThiZjE2eHcOY29yZS9saXN0LWl0ZW13JGUwNDUzNjlkLWQxMWUtNDIwZi1hMGU1LWQ3YjI5YTBjNTEwZXh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRiZjk4YTg1OC1mZWQzLTQ1M2QtYjRlMy1iOGE5MDgzNTM4NzB4dwxjb3JlL2hlYWRpbmd9AnckMzI4ZTQ3OWYtMWEyYy00NjZiLWExYjUtMTVlMjA1M2QzMDkxeHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDQ0ODkwYmM3LTMwOGYtNDhlZi05YjNiLWQ5OWUxN2FjMDA1YXh3DGNvcmUvaGVhZGluZ30DdyQxZGIzZThlYi02NDhiLTQ2NzEtOWQ5Yy1hYzFiOWYwYWIyZGR4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckNDJhNDNmZjYtYTlkOS00ZWYwLWI4YzUtNTkwMTVmNTZlNzAxeHcMY29yZS9oZWFkaW5nfQN3JDJlOGM0ZTFkLThhNzYtNDYwMS04OTdhLTZiOWY1YTVlZjk5Znh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRkOTI2YTg3My1kMzgwLTQ5NDctOGZjNC1kOTEyM2RkM2Y0NGN4dwxjb3JlL2hlYWRpbmd9A3ckYzExZGI1OWItOGI1OS00OGUzLTljMTktNjVmY2U5MTdhNmQweHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDAzMGZmMDk4LWY2ZWUtNGQ5YS05NzJiLTQ1Y2NjYmQwZWE2NXh3DGNvcmUvaGVhZGluZ30DdyQ4ZDgyNmJhYy1hMzYzLTQyMDctYTM5MC1kNDNkZGJjMzZiMzV4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckZjUxOGY4NTItMDE4MS00MTk3LTlmOTYtMDM2MWVkNTEwMmY2eHcMY29yZS9oZWFkaW5nfQN3JGU3NGQwYzBhLTBlYjYtNDVkMy1iZThiLWViNDE5Y2JlZjc0M3h3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ2ODZlMTBhMS1hYTIyLTRmYmYtYjFjNC1iYjRiNzQzMmYwYmF4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckOTcyYzNhZGYtZDg3Yy00MmEyLWJkYmYtOTZiY2YwZTE1OWU4eHcMY29yZS9oZWFkaW5nfQJ3JGY2MTEyZTUyLWZlYmUtNDkxOS1hMWUzLTY5ZjY3Mzg3ZTFmNHh3DGNvcmUvaGVhZGluZ30DdyRkYzU5MDk3OS1lYmJjLTRmOTQtODI4Ni1kNTYwNTljNjM2NzN4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckMzIxNTBkZjUtOTAzNy00ODU4LTk0OWEtNTZmZWMxMWJhMDU2eHcMY29yZS9oZWFkaW5nfQN3JDI1NjFmZGM0LTk0MWMtNDMxYy1iMjczLTE1MmQyYjliZmRkMnh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ3YzFmNmVlYy00ZWYzLTQwNjItYTg1ZC0yZDZlYWYzNGIwZDh4dwxjb3JlL2hlYWRpbmd9A3ckMTQ0NDI5YWEtYjkwOS00OTYwLWI0ZTMtNGMyM2M5NjgxM2E1eHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDYwYzJhMGIwLWVhMWUtNDcwOC1hYzY5LWMwNzk1NWMyZjc2MHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQwOWQ5OTMxNy02Y2IyLTQzMjQtODE3Yy1hOTYwYmZkMzg3M2N3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRlNmZjNGJjZS01NzZkLTRhOGQtOWY1Yi1kMzAwMTU3ZTFkNmF3CWNvcmUvbGlzdHl3AHckZGE2MDA1OWQtZDM3OS00ZmU0LWE4MzYtZmQwYjFiNTEyMmY3eHcOY29yZS9saXN0LWl0ZW13JDkxNDU3YWRkLTM5MGItNDQzYi04ZjNhLTMzNzc5ZjcwNjNmMncJY29yZS9saXN0eXcAdyRkODRiOTE3Yy00YTE2LTRmM2MtYjM3Mi1mMWNmMjgyYjMxMzF4dw5jb3JlL2xpc3QtaXRlbXckNTBiOTNmNGItNjZiYi00ZThiLTg0OTYtZjc1Y2M2MGRlYjZmdwljb3JlL2xpc3R5dwB3JDYxYWI1ZTQ0LTIzN2EtNDFlMS1hYTRmLTE1Y2U1NjFhNDE2Mnh3DmNvcmUvbGlzdC1pdGVtdyQyMjczNTNhYi01ZGJlLTRhOTAtOGU5Ny1iNmVlNDg0ZDA4NDh3CWNvcmUvbGlzdHl3AHckOWFiZTE1YjUtMDgzOC00YmI3LTlkNzItNzRhMzZjMGQyODExeHcOY29yZS9saXN0LWl0ZW13JGY3OGNlM2NlLTkxNzMtNDEyMi04N2VjLTY4N2I5Y2Q4YmE1OXcJY29yZS9saXN0eXcAdyQxNTllNzk5Ny1kYmEzLTRkZDgtYjE0Mi01ZDcwOWJiNjdmMTV4dw5jb3JlL2xpc3QtaXRlbXckMDhjZDUzZGYtODNkZi00ZGE3LWI4ZWMtM2Y4YmFlMGI2ZmZleHcKY29yZS9pbWFnZXcAfb2mBHcyaHR0cHM6Ly93d3cuZ3JlZW51c28uY29tL2Jsb2cvP2F0dGFjaG1lbnRfaWQ9MzUyNjF3XGh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy9DYXB0dXJhLWRlLXBhbnRhbGxhLTIwMjYtMDQtMjktMTAwNTQ3LTMuanBndwRmdWxsdwRub25ldzBTdWdhcmNhbmUgRm9vZCBDb250YWluZXJzOiBTdXN0YWluYWJsZSAmIER1cmFibGV3OnN1Z2FyY2FuZS1wYWNrYWdpbmctc3VzdGFpbmFiaWxpdHktYW5kLWVjb2xvZ2ljYWwtYmVuZWZpdHN3FHN1Z2FyY2FuZS1wYWNrYWdpbmctdxNzdWdhcmNhbmUtcGFja2FnaW5ndxMyMDI2LTA1LTA2VDEwOjMwOjEzdxMyMDI2LTA1LTA2VDIyOjMwOjAwdxMyMDI2LTA1LTA2VDEwOjMwOjAwdxMyMDI2LTA1LTA2VDEwOjU3OjAwdwZmdXR1cmUBsqyx6QIfAQE91VUfAAcHAQACQJYCXps0AAEAASG4AgABAAEtsgIAAQABHKkCAAEAASvLAgABAAEmzxIDgwIAnAi6A80c6wSIC74D\/he5AeIWhATEEgEjAg==\",\"updateId\":935292149}","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[39],"tags":[],"class_list":["post-35188","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts\/35188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/comments?post=35188"}],"version-history":[{"count":2,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts\/35188\/revisions"}],"predecessor-version":[{"id":35270,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts\/35188\/revisions\/35270"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/media\/35206"}],"wp:attachment":[{"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/media?parent=35188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/categories?post=35188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/tags?post=35188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}