{"id":34640,"date":"2026-04-15T10:57:00","date_gmt":"2026-04-15T08:57:00","guid":{"rendered":"https:\/\/www.greenuso.com\/blog\/?p=34640"},"modified":"2026-04-14T14:34:45","modified_gmt":"2026-04-14T12:34:45","slug":"recycling-symbols","status":"publish","type":"post","link":"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/","title":{"rendered":"Discover the Meaning of Recycling Symbols on Packaging and Their Importance \u267b"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The packaging we use daily carries recycling symbols that we often overlook. Knowing their meaning helps us dispose of each material in the correct bin, reduce errors, and care for the environment. This guide will help you identify these symbols and use them to recycle easily.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The presence of recycling symbols on packaging often generates frequent questions: Does it mean the package is always recyclable? Which bin should it go into? Do all cities use the same symbols? These questions are common and highlight the need to understand the signals that appear on bottles, cartons, cans, and boxes we use daily.<\/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 ' ><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Basic_Recycling_Symbols_and_Their_Function\" >Basic Recycling Symbols and Their Function<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Importance_of_Recognizing_Symbols_for_Proper_Waste_Management\" >Importance of Recognizing Symbols for Proper Waste Management<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Main_Recycling_Symbols_on_Packaging_and_Their_Meaning\" >Main Recycling Symbols on Packaging and Their Meaning<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Most_Common_Recycling_Symbols\" >Most Common Recycling Symbols<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Differences_Between_Symbols_According_to_Material\" >Differences Between Symbols According to Material<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Other_Relevant_Symbols\" >Other Relevant Symbols<\/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\/recycling-symbols\/#Complementary_Symbols\" >Complementary Symbols<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Regulation_and_Requirements_for_Packaging_Marking\" >Regulation and Requirements for Packaging Marking<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Legislative_Framework_Royal_Decree_10552022\" >Legislative Framework: Royal Decree 1055\/2022<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Differences_Between_Mandatory_and_Voluntary_Marking\" >Differences Between Mandatory and Voluntary Marking<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Requirements_for_Companies_and_Citizens_Responsibilities\" >Requirements for Companies and Citizens&#8217; Responsibilities<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#How_to_Identify_and_Correctly_Use_Recycling_Symbols\" >How to Identify and Correctly Use Recycling Symbols<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Where_to_Find_the_Symbols\" >Where to Find the Symbols<\/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\/recycling-symbols\/#Proper_Material_Separation\" >Proper Material Separation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Recommended_Practices_Wash_and_Separate\" >Recommended Practices: Wash and Separate<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.greenuso.com\/blog\/recycling-symbols\/#Tips_to_Avoid_Common_Mistakes_and_Promote_Sustainability\" >Tips to Avoid Common Mistakes and Promote Sustainability<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Basic_Recycling_Symbols_and_Their_Function\"><\/span>Basic Recycling Symbols and Their Function<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The most well-known recycling symbol is the one with <strong>three arrows forming a triangle<\/strong>. Its main function is to indicate that the package can be recycled, but it only suggests the possibility, not an absolute guarantee that the material will be recycled in all circumstances. Often, this triangle includes a number or letters inside, identifying the type of material, such as PET, HDPE, PP, or the corresponding code for paper, cardboard, and other materials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other common symbols on packaging are pictograms of colored containers, which directly indicate which fraction the waste belongs to: yellow for plastics and cans, blue for paper and cardboard, green for glass. These icons help consumers correctly separate waste at the source.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Importance_of_Recognizing_Symbols_for_Proper_Waste_Management\"><\/span>Importance of Recognizing Symbols for Proper Waste Management<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding the meaning of these symbols is key to avoiding mistakes in material separation. A package with a misinterpreted symbol can end up in the wrong container, complicating the recycling process and contaminating other fractions. Therefore, paying attention to symbols before disposing of a package allows us to act responsibly and efficiently, facilitating recycling in plants and helping to reduce the volume of waste destined for landfills.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In summary, recycling symbols on packaging do more than indicate the possibility of recycling; they are an essential tool for proper waste management. Correct interpretation helps close the loop and promotes sustainable habits in daily life.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Main_Recycling_Symbols_on_Packaging_and_Their_Meaning\"><\/span>Main Recycling Symbols on Packaging and Their Meaning<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Recognizing recycling symbols is crucial for identifying the material of the packaging and knowing which container it should be placed in. These symbols provide quick information about composition, recyclability, and other important characteristics that foster efficient waste management.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Most_Common_Recycling_Symbols\"><\/span>Most Common Recycling Symbols<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mobius Triangle (\u267b\ufe0f)<\/strong><br>This is the international recycling symbol, consisting of three chasing arrows forming a triangle. It indicates that the product or material is recyclable. It sometimes incorporates a percentage inside to specify the amount of recycled material. If it has a number or internal initials, it indicates the resin code for plastics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resin Codes (Plastics)<\/strong><br>Inside the recycling triangle, plastic packages show a number from 1 to 7 and sometimes an abbreviation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1 (PET or PETE): Used in water or soft drink bottles.<\/li>\n\n\n\n<li>2 (HDPE): Milk containers, detergent bottles, or bags.<\/li>\n\n\n\n<li>3 (PVC): Detergent bottles and some food packaging.<\/li>\n\n\n\n<li>4 (LDPE): Flexible plastic bags and films.<\/li>\n\n\n\n<li>5 (PP): Lids, straws, and yogurt containers.<\/li>\n\n\n\n<li>6 (PS): Disposable cups or meat trays.<\/li>\n\n\n\n<li>7 (Other): Plastics not included in the previous categories.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"2560\" src=\"https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-scaled.jpg\" alt=\"Discover the meaning of recycling symbols on packaging and learn how to sort waste correctly to protect the environment.\" class=\"wp-image-34737\" srcset=\"https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-scaled.jpg 2560w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-150x150.jpg 150w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-300x300.jpg 300w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-768x768.jpg 768w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-1024x1024.jpg 1024w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-1536x1536.jpg 1536w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-2048x2048.jpg 2048w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-80x80-3.jpg 80w, https:\/\/www.greenuso.com\/blog\/wp-content\/uploads\/10428-4-60x60.jpg 60w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Container Pictograms<\/strong><br>These are icons representing the appropriate container for each package:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yellow container: Plastics and cans.<\/li>\n\n\n\n<li>Blue container: Paper and cardboard.<\/li>\n\n\n\n<li>Green container: Glass.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Some packages directly show the pictogram or a strip of the official color.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Differences_Between_Symbols_According_to_Material\"><\/span>Differences Between Symbols According to Material<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Plastic<\/strong><br>Identified with the Mobius triangle along with a resin number. Specifies the <a href=\"https:\/\/scrapad.com\/en\/blog\/identification-and-code-of-plastics\/\" data-type=\"link\" data-id=\"https:\/\/scrapad.com\/en\/blog\/identification-and-code-of-plastics\/\" target=\"_blank\" rel=\"noopener\">type of plastic<\/a> and its recyclability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cardboard and Paper<\/strong><br>Carry the simple recycling symbol, sometimes accompanied by folded paper pictograms or the blue container icon. Aim to recycle waste in the corresponding fraction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Glass<\/strong><br>Usually marked with the icon of a glass container and a circular arrow, or the green pictogram.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Metal<\/strong><br>Cans and metal packaging may display a magnet symbol, indicating their recyclability through magnetic separation, or simply the traditional triangle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Other_Relevant_Symbols\"><\/span>Other Relevant Symbols<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>BPA Free<\/strong><br>Indicates the absence of bisphenol A, a potentially harmful chemical in plastics. It is not directly related to recycling but to the food safety of the package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Compostable<\/strong><br>The compostable symbol typically displays a leaf or spiral, indicating that the package can decompose alongside organic waste under industrial composting conditions. It is crucial not to mix these packages with conventional plastic waste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reusable<\/strong><br>A symbol of two circular arrows or the text reusable identifies packages designed to be used multiple times before entering the recycling cycle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Complementary_Symbols\"><\/span>Complementary Symbols<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Food Contact Safe<\/strong>: A crossed glass and fork indicate that the package is safe for food.<\/li>\n\n\n\n<li><strong>Dispose at Collection Point<\/strong>: For products that should not go in domestic containers.<\/li>\n\n\n\n<li><strong>Green Dot<\/strong>: Indicates that the manufacturer complies with packaging waste management, though it doesn&#8217;t guarantee the recyclability of the product.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Correctly interpreting these symbols contributes to precise selective sorting, facilitates material recycling, and supports the circular economy model. Thus, each package&#8217;s label becomes a key tool for packaging recycling and respect for the environment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Regulation_and_Requirements_for_Packaging_Marking\"><\/span>Regulation and Requirements for Packaging Marking<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The regulations on packaging marking establish how materials should be identified and what mandatory information must appear to facilitate proper waste management.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Legislative_Framework_Royal_Decree_10552022\"><\/span>Legislative Framework: Royal Decree 1055\/2022<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Royal Decree 1055\/2022 regulates packaging and packaging waste management in Spain. It imposes the obligation to mark packages with symbols that allow users to identify the material and the appropriate container. This legislation sets homogeneous criteria for the entire territory, aiming to increase recycling rates, improve traceability, and reduce the environmental impact of waste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Royal Decree describes the type of marking that should be included, depending on the material. Plastic, cardboard, paper, metal, and glass must be correctly identified, and multilayer packages require a specific symbol reflecting their composition. Additionally, it distinguishes between domestic, commercial, and industrial packaging, regulating the marking that corresponds to each case.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Differences_Between_Mandatory_and_Voluntary_Marking\"><\/span>Differences Between Mandatory and Voluntary Marking<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not all symbols on packaging are mandatory by law. The mandatory marking includes the codes identifying the packaging material, the pictograms for correct separation, and in some cases, symbols for reusable or compostable packaging, where applicable. The objective is to ensure that consumers can properly separate waste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voluntary marking includes additional information not required by law, such as the amount of recycled material, the carbon footprint, or certain sustainability symbols. These can provide added value for consumers but do not replace the mandatory labeling required by the Royal Decree.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Requirements_for_Companies_and_Citizens_Responsibilities\"><\/span>Requirements for Companies and Citizens&#8217; Responsibilities<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Companies<\/strong><br><a href=\"https:\/\/www.greenuso.com\/blog\/corporate-social-responsibility-what-is-it-and-what-are-its-principles\/\" data-type=\"link\" data-id=\"https:\/\/www.greenuso.com\/blog\/corporate-social-responsibility-what-is-it-and-what-are-its-principles\/\">Companies responsible<\/a> for marketing packages must ensure all their packaging complies with legal marking. This includes placing the recycling symbols and material identification codes in accordance with the type of waste, typography, and visibility set by legislation. They must also ensure the information is clear and accessible to consumers, avoiding confusion that could affect waste management.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Citizens<\/strong><br>Correct separation and disposal of packaging following the symbols and pictograms are a shared responsibility. Users must consult the pictograms and instructions on packaging to comply with current regulations and contribute to effective recycling. Citizen involvement is essential to maintain the material cycle and advance towards a circular economy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compliance with this regulation and clear labeling are essential for achieving waste reduction and recycling targets set at European and national levels. Properly applying marking on packaging helps prevent errors in separation and optimizes the entire recycling process.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_to_Identify_and_Correctly_Use_Recycling_Symbols\"><\/span>How to Identify and Correctly Use Recycling Symbols<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Knowing how to locate and understand recycling symbols on packaging is essential for proper waste management. These icons provide direct information about the packaging material and its destiny in the recycling process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Where_to_Find_the_Symbols\"><\/span>Where to Find the Symbols<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Recycling symbols are usually placed in discrete but visible locations on the packaging:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bottom or back of bottles, jars, and boxes.<\/li>\n\n\n\n<li>Near the ingredient label or in the product description.<\/li>\n\n\n\n<li>On the seal or lid, especially on small packages.<\/li>\n\n\n\n<li>On bags, they often appear close to an edge or alongside usage instructions.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Correctly reading the symbol ensures you know what to do with the package after use.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Proper_Material_Separation\"><\/span>Proper Material Separation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For correct waste separation, pay attention to the symbol:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identify the material (plastic, glass, metal, paper, cardboard) according to the pictogram or resin code.<\/li>\n\n\n\n<li>Deposit each waste in its corresponding container: yellow for plastics and cans, blue for paper and cardboard, green for glass.<\/li>\n\n\n\n<li>If the package is compostable, look for the organic container or home composter if allowed in your municipality.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Recommended_Practices_Wash_and_Separate\"><\/span>Recommended Practices: Wash and Separate<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Completely empty any remaining liquids or food before disposing of the package.<\/li>\n\n\n\n<li>Lightly rinse packages that contained greasy or sticky substances, avoiding contamination of recycled materials.<\/li>\n\n\n\n<li>Separate lids, labels, and other components that might be made of a different material from the main one.<\/li>\n\n\n\n<li>Do not nest or place small packages inside others; this complicates recycling when they reach the facility.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tips_to_Avoid_Common_Mistakes_and_Promote_Sustainability\"><\/span>Tips to Avoid Common Mistakes and Promote Sustainability<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do not deposit objects with inseparable mixed materials in conventional recycling bins.<\/li>\n\n\n\n<li>Do not throw unrecognized packages or packages without symbols in selective recycling.<\/li>\n\n\n\n<li>Always check the pictograms: even small details, like a color band, may indicate the right container.<\/li>\n\n\n\n<li>Whenever possible, opt for reusable packaging or materials that are easily recyclable, limiting the use of complex or single-use plastics.<\/li>\n\n\n\n<li>Stay informed about local regulations, as there are differences in recycling certain materials depending on the municipality.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Applying these tips and <strong>sustainable practices ensures better resource<\/strong> use and reinforces the environmental benefits of recycling packaging symbols.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The packaging we use daily carries recycling symbols that we often overlook. Knowing their meaning helps us dispose of each material in the correct bin, reduce errors, and care for\u2026<\/p>\n","protected":false},"author":1,"featured_media":34675,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAH\/4bTnQySCZoJBpgCiK8DARg8AgECCkpQ0rIDpLIDBgQQUkq2AgEBCAJCAEgAvAgBAQgCQkgAsAEBAQgCQgBIAKwKAQEIAkJIAKQBAQEIAqoBAjzqAgBIAKQOAQEIAkIASAC6CAEBCAJCSACKAgEBCAJCAEgAmg4BAQgCQgBIALQHAQEIAkJIALoBAQEIAkIASACSCQEBCAJCSACKAQEBCAJCAEgAtAsBAQgCQgBIALgEAQEIAEgOAgEBCAJKALgBAQEIAkoAugEBAQgCSgC0AQEBCAJKAKIBAQEIAkoApgEBAQgCSgCaAQEBCAJK2AqeDAEBCAJCAEgAtAMBAQgASA4CAQEIAkoAlgEBAQgCSgCWAQEBCAJK\/AK4AwEBCAJCAEgAqAIBAQgCQkgAsgEBAQgCkgMCBgMCDvIDAEgAsAQBAQgCQgBIAKgGAQEIAkIASACEBAEBCAJCAEgAsAUBAQgCQkgAPAEBCAJCAEgAjAYBAQgCQgBIAK4IAQEIAkIASACsBQEBCAJCSAA6AQEIAEgOAgEBCAJKAJ4DAQEIAkoAmAMBAQgCSsYHmgwBAQgCQgBIAI4IAQEIAkJIALIBAQEIAkIASACYBQEBCAJCSACqAQEBCAJCAEgAlAwBAQgCQgBIAKQMAQEIAkJIALYBAQEIAkIASACUCgEBCAJCAEgAigkBAQgCQkgAggIBAQgCPCroAQBIAKwNAQEIAkIASACMDAEBCAJCAEgAsAgBAQgCQkgAtgEBAQgCQgBIAIgHAQEIAkJIAIIBAQEIAkIASACCAwEBCABIDgIBAQgCSgCkAQEBCAJKAL4BAQEIAkoAsAEBAQgCSuIFiAgBAQgCQgBIALoCAQEIAkJIAIQBAQEIAkIASACGAgEBCABIDgIBAQgCSgCgAwEBCAJKAIwEAQEIAkr8B6oLAQEIAkJIAKABAQEIAEgOAgEBCAJKAKwCAQEIAkoArgMBAQgCSgCgAwEBCAJKygquDQEBCAJCSACAAgEBCABIDgIBAQgCSgC8AgEBCAJKALoCAQEIAkoAmAMBAQgCSgCiBAEBCAJKwA6IEgEBCAIwApgBzAIASAC4BAEBCAJCSAC8AQEBCAJCAEgAuAYBAQgCQkgApgEBAQgASA4CAQEIAkoArgYBAQgCSgCCBgEBCAJKwA2ODwEBCABIDgIBAQgCSgCCAQEBCAJKAIIBAQEIAkrUApAEAQEIAEgOAgEBCAJKAIoEAQEIAkraBKYJAQEIAkJIAIIBAQEIAEgOAgEBCAJKAIQCAQEIAkoArgIBAQgCSsIFuAcBAQgCQkgAnAEBAQgASA4CAQEIAkoAjgIBAQgCSgCoAgEBCAJKAJgDAQEIAkreCIQMAQEIAkIASACkBgEBCAEASNKuAwJQANKwA7KWBJ7IAgEBCABIDEQBAoYEAsYEigQClhuiDq5nqgyKGa4EhJwBqg2ElQG2BDCGBCyAbs7zBAMA0E6ewgUBAQgBAEjOrgYqtMoCgO0D2qYCwIkFAgYDAg7OgwGw1Qju1QiqGwI8kLIDhJwB6IQCApgBkogG5MEBxq4HsrEI8LEIAq6xCJRDuBHwuQw1rKUEzKMEAQySmgbmcCq0ygIApsYBwIkFAgYDAg7iZwI8kLIDhJwB6IQCApgBrsYErIMBlEPdCigAIQEnAAQAJwABACcAKAYnACgcJwAHACgDJwAoACcAqAChACEBqAGnAAQAKACHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInACgBJwAHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAoAScAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAhAcoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAhAEoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwAoAScABwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAoACcAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACgAJwCHACgCJwAoAScABwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEAIQCKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInACgBJwAHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwAoAScABwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAoACcAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAKAAnAIcAKAInACgBJwAHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAoAScAhwAoAicBKAEnAKgBKAGEAMcAKAInACgAJwEEACgEqAREAMEAxADBAMQAwQDEAMEAxADBAMQAwQDEAMEAxACoAscAKAInASgBJwDEAsEAxAioAsQHKACoAMQAqADBAKgBxACopq4C3aUCc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlRGlzY292ZXIgdGhlIE1lYW5pbmcgb2YgUmVjeWNsaW5nIFN5bWJvbHMgb24gUGFja2FnaW5nIGFuZCBUaGVpciBJbXBvcnRhbmNlZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YXNpdGUtc2lkZWJhci1sYXlvdXRzaXRlLWNvbnRlbnQtbGF5b3V0YXN0LXNpdGUtY29udGVudC1sYXlvdXRzaXRlLWNvbnRlbnQtc3R5bGVzaXRlLXNpZGViYXItc3R5bGVhc3QtZ2xvYmFsLWhlYWRlci1kaXNwbGF5YXN0LWJhbm5lci10aXRsZS12aXNpYmlsaXR5YXN0LW1haW4taGVhZGVyLWRpc3BsYXlhc3QtaGZiLWFib3ZlLWhlYWRlci1kaXNwbGF5YXN0LWhmYi1iZWxvdy1oZWFkZXItZGlzcGxheWFzdC1oZmItbW9iaWxlLWhlYWRlci1kaXNwbGF5c2l0ZS1wb3N0LXRpdGxlYXN0LWJyZWFkY3J1bWJzLWNvbnRlbnRhc3QtZmVhdHVyZWQtaW1nZm9vdGVyLXNtbC1sYXlvdXRhc3QtZGlzYWJsZS1yZWxhdGVkLXBvc3RzdGhlbWUtdHJhbnNwYXJlbnQtaGVhZGVyLW1ldGFhZHYtaGVhZGVyLWlkLW1ldGFzdGljay1oZWFkZXItbWV0YWhlYWRlci1hYm92ZS1zdGljay1tZXRhaGVhZGVyLW1haW4tc3RpY2stbWV0YWhlYWRlci1iZWxvdy1zdGljay1tZXRhYXN0cmEtbWlncmF0ZS1tZXRhLWxheW91dHNhc3QtcGFnZS1iYWNrZ3JvdW5kLWVuYWJsZWRhc3QtcGFnZS1iYWNrZ3JvdW5kLW1ldGFhc3QtY29udGVudC1iYWNrZ3JvdW5kLW1ldGFmb290bm90ZXNkb2N1bWVudGNhdGVnb3JpZXNkb2N1bWVudHRhZ3Nkb2N1bWVudGJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzc3RhdGVzYXZlZEF0c3RhdGVzYXZlZEJ5RGlzY292ZXIgdGhlIE1lYW5pbmcgb2YgUmVjeWNsaW5nIFN5bWJvbHMgb24gUGFja2FnaW5nIGFuZCBUaGVpciBJbXBvcnRhbmNlbGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgcGFja2FnaW5nIHdlIHVzZSBkYWlseSBjYXJyaWVzIHJlY3ljbGluZyBzeW1ib2xzIHRoYXQgd2Ugb2Z0ZW4gb3Zlcmxvb2suIEtub3dpbmcgdGhlaXIgbWVhbmluZyBoZWxwcyB1cyBkaXNwb3NlIG9mIGVhY2ggbWF0ZXJpYWwgaW4gdGhlIGNvcnJlY3QgYmluLCByZWR1Y2UgZXJyb3JzLCBhbmQgY2FyZSBmb3IgdGhlIGVudmlyb25tZW50LiBUaGlzIGd1aWRlIHdpbGwgaGVscCB5b3UgaWRlbnRpZnkgdGhlc2Ugc3ltYm9scyBhbmQgdXNlIHRoZW0gdG8gcmVjeWNsZSBlYXNpbHkuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRXaGF0IGRvIHRoZSByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgbWVhbj9sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIHByZXNlbmNlIG9mIHJlY3ljbGluZyBzeW1ib2xzIG9uIHBhY2thZ2luZyBvZnRlbiBnZW5lcmF0ZXMgZnJlcXVlbnQgcXVlc3Rpb25zOiBEb2VzIGl0IG1lYW4gdGhlIHBhY2thZ2UgaXMgYWx3YXlzIHJlY3ljbGFibGU\/IFdoaWNoIGJpbiBzaG91bGQgaXQgZ28gaW50bz8gRG8gYWxsIGNpdGllcyB1c2UgdGhlIHNhbWUgc3ltYm9scz8gVGhlc2UgcXVlc3Rpb25zIGFyZSBjb21tb24gYW5kIGhpZ2hsaWdodCB0aGUgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzaWduYWxzIHRoYXQgYXBwZWFyIG9uIGJvdHRsZXMsIGNhcnRvbnMsIGNhbnMsIGFuZCBib3hlcyB3ZSB1c2UgZGFpbHkuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRCYXNpYyBSZWN5Y2xpbmcgU3ltYm9scyBhbmQgVGhlaXIgRnVuY3Rpb25sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIG1vc3Qgd2VsbC1rbm93biByZWN5Y2xpbmcgc3ltYm9sIGlzIHRoZSBvbmUgd2l0aCB0aHJlZSBhcnJvd3MgZm9ybWluZyBhIHRyaWFuZ2xlLiBJdHMgbWFpbiBmdW5jdGlvbiBpcyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYWNrYWdlIGNhbiBiZSByZWN5Y2xlZCwgYnV0IGl0IG9ubHkgc3VnZ2VzdHMgdGhlIHBvc3NpYmlsaXR5LCBub3QgYW4gYWJzb2x1dGUgZ3VhcmFudGVlIHRoYXQgdGhlIG1hdGVyaWFsIHdpbGwgYmUgcmVjeWNsZWQgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIE9mdGVuLCB0aGlzIHRyaWFuZ2xlIGluY2x1ZGVzIGEgbnVtYmVyIG9yIGxldHRlcnMgaW5zaWRlLCBpZGVudGlmeWluZyB0aGUgdHlwZSBvZiBtYXRlcmlhbCwgc3VjaCBhcyBQRVQsIEhEUEUsIFBQLCBvciB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGZvciBwYXBlciwgY2FyZGJvYXJkLCBhbmQgb3RoZXIgbWF0ZXJpYWxzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50T3RoZXIgY29tbW9uIHN5bWJvbHMgb24gcGFja2FnaW5nIGFyZSBwaWN0b2dyYW1zIG9mIGNvbG9yZWQgY29udGFpbmVycywgd2hpY2ggZGlyZWN0bHkgaW5kaWNhdGUgd2hpY2ggZnJhY3Rpb24gdGhlIHdhc3RlIGJlbG9uZ3MgdG86IHllbGxvdyBmb3IgcGxhc3RpY3MgYW5kIGNhbnMsIGJsdWUgZm9yIHBhcGVyIGFuZCBjYXJkYm9hcmQsIGdyZWVuIGZvciBnbGFzcy4gVGhlc2UgaWNvbnMgaGVscCBjb25zdW1lcnMgY29ycmVjdGx5IHNlcGFyYXRlIHdhc3RlIGF0IHRoZSBzb3VyY2UuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbXBvcnRhbmNlIG9mIFJlY29nbml6aW5nIFN5bWJvbHMgZm9yIFByb3BlciBXYXN0ZSBNYW5hZ2VtZW50bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFVuZGVyc3RhbmRpbmcgdGhlIG1lYW5pbmcgb2YgdGhlc2Ugc3ltYm9scyBpcyBrZXkgdG8gYXZvaWRpbmcgbWlzdGFrZXMgaW4gbWF0ZXJpYWwgc2VwYXJhdGlvbi4gQSBwYWNrYWdlIHdpdGggYSBtaXNpbnRlcnByZXRlZCBzeW1ib2wgY2FuIGVuZCB1cCBpbiB0aGUgd3JvbmcgY29udGFpbmVyLCBjb21wbGljYXRpbmcgdGhlIHJlY3ljbGluZyBwcm9jZXNzIGFuZCBjb250YW1pbmF0aW5nIG90aGVyIGZyYWN0aW9ucy4gVGhlcmVmb3JlLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHN5bWJvbHMgYmVmb3JlIGRpc3Bvc2luZyBvZiBhIHBhY2thZ2UgYWxsb3dzIHVzIHRvIGFjdCByZXNwb25zaWJseSBhbmQgZWZmaWNpZW50bHksIGZhY2lsaXRhdGluZyByZWN5Y2xpbmcgaW4gcGxhbnRzIGFuZCBoZWxwaW5nIHRvIHJlZHVjZSB0aGUgdm9sdW1lIG9mIHdhc3RlIGRlc3RpbmVkIGZvciBsYW5kZmlsbHMuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbiBzdW1tYXJ5LCByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgZG8gbW9yZSB0aGFuIGluZGljYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiByZWN5Y2xpbmc7IHRoZXkgYXJlIGFuIGVzc2VudGlhbCB0b29sIGZvciBwcm9wZXIgd2FzdGUgbWFuYWdlbWVudC4gQ29ycmVjdCBpbnRlcnByZXRhdGlvbiBoZWxwcyBjbG9zZSB0aGUgbG9vcCBhbmQgcHJvbW90ZXMgc3VzdGFpbmFibGUgaGFiaXRzIGluIGRhaWx5IGxpZmUuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYWluIFJlY3ljbGluZyBTeW1ib2xzIG9uIFBhY2thZ2luZyBhbmQgVGhlaXIgTWVhbmluZ2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSZWNvZ25pemluZyByZWN5Y2xpbmcgc3ltYm9scyBpcyBjcnVjaWFsIGZvciBpZGVudGlmeWluZyB0aGUgbWF0ZXJpYWwgb2YgdGhlIHBhY2thZ2luZyBhbmQga25vd2luZyB3aGljaCBjb250YWluZXIgaXQgc2hvdWxkIGJlIHBsYWNlZCBpbi4gVGhlc2Ugc3ltYm9scyBwcm92aWRlIHF1aWNrIGluZm9ybWF0aW9uIGFib3V0IGNvbXBvc2l0aW9uLCByZWN5Y2xhYmlsaXR5LCBhbmQgb3RoZXIgaW1wb3J0YW50IGNoYXJhY3RlcmlzdGljcyB0aGF0IGZvc3RlciBlZmZpY2llbnQgd2FzdGUgbWFuYWdlbWVudC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE1vc3QgQ29tbW9uIFJlY3ljbGluZyBTeW1ib2xzbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+TW9iaXVzIFRyaWFuZ2xlICjimbvvuI8pPC9zdHJvbmc+PGJyPlRoaXMgaXMgdGhlIGludGVybmF0aW9uYWwgcmVjeWNsaW5nIHN5bWJvbCwgY29uc2lzdGluZyBvZiB0aHJlZSBjaGFzaW5nIGFycm93cyBmb3JtaW5nIGEgdHJpYW5nbGUuIEl0IGluZGljYXRlcyB0aGF0IHRoZSBwcm9kdWN0IG9yIG1hdGVyaWFsIGlzIHJlY3ljbGFibGUuIEl0IHNvbWV0aW1lcyBpbmNvcnBvcmF0ZXMgYSBwZXJjZW50YWdlIGluc2lkZSB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgcmVjeWNsZWQgbWF0ZXJpYWwuIElmIGl0IGhhcyBhIG51bWJlciBvciBpbnRlcm5hbCBpbml0aWFscywgaXQgaW5kaWNhdGVzIHRoZSByZXNpbiBjb2RlIGZvciBwbGFzdGljcy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+UmVzaW4gQ29kZXMgKFBsYXN0aWNzKTwvc3Ryb25nPjxicj5JbnNpZGUgdGhlIHJlY3ljbGluZyB0cmlhbmdsZSwgcGxhc3RpYyBwYWNrYWdlcyBzaG93IGEgbnVtYmVyIGZyb20gMSB0byA3IGFuZCBzb21ldGltZXMgYW4gYWJicmV2aWF0aW9uOmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQxIChQRVQgb3IgUEVURSk6IFVzZWQgaW4gd2F0ZXIgb3Igc29mdCBkcmluayBib3R0bGVzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50MiAoSERQRSk6IE1pbGsgY29udGFpbmVycywgZGV0ZXJnZW50IGJvdHRsZXMsIG9yIGJhZ3MuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQzIChQVkMpOiBEZXRlcmdlbnQgYm90dGxlcyBhbmQgc29tZSBmb29kIHBhY2thZ2luZy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDQgKExEUEUpOiBGbGV4aWJsZSBwbGFzdGljIGJhZ3MgYW5kIGZpbG1zLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50NSAoUFApOiBMaWRzLCBzdHJhd3MsIGFuZCB5b2d1cnQgY29udGFpbmVycy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDYgKFBTKTogRGlzcG9zYWJsZSBjdXBzIG9yIG1lYXQgdHJheXMuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ3IChPdGhlcik6IFBsYXN0aWNzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcHJldmlvdXMgY2F0ZWdvcmllcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Q29udGFpbmVyIFBpY3RvZ3JhbXM8L3N0cm9uZz48YnI+VGhlc2UgYXJlIGljb25zIHJlcHJlc2VudGluZyB0aGUgYXBwcm9wcmlhdGUgY29udGFpbmVyIGZvciBlYWNoIHBhY2thZ2U6ZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFllbGxvdyBjb250YWluZXI6IFBsYXN0aWNzIGFuZCBjYW5zLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Qmx1ZSBjb250YWluZXI6IFBhcGVyIGFuZCBjYXJkYm9hcmQuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRHcmVlbiBjb250YWluZXI6IEdsYXNzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U29tZSBwYWNrYWdlcyBkaXJlY3RseSBzaG93IHRoZSBwaWN0b2dyYW0gb3IgYSBzdHJpcCBvZiB0aGUgb2ZmaWNpYWwgY29sb3IuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnREaWZmZXJlbmNlcyBCZXR3ZWVuIFN5bWJvbHMgQWNjb3JkaW5nIHRvIE1hdGVyaWFsbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+UGxhc3RpYzwvc3Ryb25nPjxicj5JZGVudGlmaWVkIHdpdGggdGhlIE1vYml1cyB0cmlhbmdsZSBhbG9uZyB3aXRoIGEgcmVzaW4gbnVtYmVyLiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgcGxhc3RpYyBhbmQgaXRzIHJlY3ljbGFiaWxpdHkuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkNhcmRib2FyZCBhbmQgUGFwZXI8L3N0cm9uZz48YnI+Q2FycnkgdGhlIHNpbXBsZSByZWN5Y2xpbmcgc3ltYm9sLCBzb21ldGltZXMgYWNjb21wYW5pZWQgYnkgZm9sZGVkIHBhcGVyIHBpY3RvZ3JhbXMgb3IgdGhlIGJsdWUgY29udGFpbmVyIGljb24uIEFpbSB0byByZWN5Y2xlIHdhc3RlIGluIHRoZSBjb3JyZXNwb25kaW5nIGZyYWN0aW9uLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5HbGFzczwvc3Ryb25nPjxicj5Vc3VhbGx5IG1hcmtlZCB3aXRoIHRoZSBpY29uIG9mIGEgZ2xhc3MgY29udGFpbmVyIGFuZCBhIGNpcmN1bGFyIGFycm93LCBvciB0aGUgZ3JlZW4gcGljdG9ncmFtLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NZXRhbDwvc3Ryb25nPjxicj5DYW5zIGFuZCBtZXRhbCBwYWNrYWdpbmcgbWF5IGRpc3BsYXkgYSBtYWduZXQgc3ltYm9sLCBpbmRpY2F0aW5nIHRoZWlyIHJlY3ljbGFiaWxpdHkgdGhyb3VnaCBtYWduZXRpYyBzZXBhcmF0aW9uLCBvciBzaW1wbHkgdGhlIHRyYWRpdGlvbmFsIHRyaWFuZ2xlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50T3RoZXIgUmVsZXZhbnQgU3ltYm9sc2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkJQQSBGcmVlPC9zdHJvbmc+PGJyPkluZGljYXRlcyB0aGUgYWJzZW5jZSBvZiBiaXNwaGVub2wgQSwgYSBwb3RlbnRpYWxseSBoYXJtZnVsIGNoZW1pY2FsIGluIHBsYXN0aWNzLiBJdCBpcyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byByZWN5Y2xpbmcgYnV0IHRvIHRoZSBmb29kIHNhZmV0eSBvZiB0aGUgcGFja2FnZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Q29tcG9zdGFibGU8L3N0cm9uZz48YnI+VGhlIGNvbXBvc3RhYmxlIHN5bWJvbCB0eXBpY2FsbHkgZGlzcGxheXMgYSBsZWFmIG9yIHNwaXJhbCwgaW5kaWNhdGluZyB0aGF0IHRoZSBwYWNrYWdlIGNhbiBkZWNvbXBvc2UgYWxvbmdzaWRlIG9yZ2FuaWMgd2FzdGUgdW5kZXIgaW5kdXN0cmlhbCBjb21wb3N0aW5nIGNvbmRpdGlvbnMuIEl0IGlzIGNydWNpYWwgbm90IHRvIG1peCB0aGVzZSBwYWNrYWdlcyB3aXRoIGNvbnZlbnRpb25hbCBwbGFzdGljIHdhc3RlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5SZXVzYWJsZTwvc3Ryb25nPjxicj5BIHN5bWJvbCBvZiB0d28gY2lyY3VsYXIgYXJyb3dzIG9yIHRoZSB0ZXh0IHJldXNhYmxlIGlkZW50aWZpZXMgcGFja2FnZXMgZGVzaWduZWQgdG8gYmUgdXNlZCBtdWx0aXBsZSB0aW1lcyBiZWZvcmUgZW50ZXJpbmcgdGhlIHJlY3ljbGluZyBjeWNsZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudENvbXBsZW1lbnRhcnkgU3ltYm9sc2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Rm9vZCBDb250YWN0IFNhZmU8L3N0cm9uZz46IEEgY3Jvc3NlZCBnbGFzcyBhbmQgZm9yayBpbmRpY2F0ZSB0aGF0IHRoZSBwYWNrYWdlIGlzIHNhZmUgZm9yIGZvb2QuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkRpc3Bvc2UgYXQgQ29sbGVjdGlvbiBQb2ludDwvc3Ryb25nPjogRm9yIHByb2R1Y3RzIHRoYXQgc2hvdWxkIG5vdCBnbyBpbiBkb21lc3RpYyBjb250YWluZXJzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5HcmVlbiBEb3Q8L3N0cm9uZz46IEluZGljYXRlcyB0aGF0IHRoZSBtYW51ZmFjdHVyZXIgY29tcGxpZXMgd2l0aCBwYWNrYWdpbmcgd2FzdGUgbWFuYWdlbWVudCwgdGhvdWdoIGl0IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSByZWN5Y2xhYmlsaXR5IG9mIHRoZSBwcm9kdWN0LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q29ycmVjdGx5IGludGVycHJldGluZyB0aGVzZSBzeW1ib2xzIGNvbnRyaWJ1dGVzIHRvIHByZWNpc2Ugc2VsZWN0aXZlIHNvcnRpbmcsIGZhY2lsaXRhdGVzIG1hdGVyaWFsIHJlY3ljbGluZywgYW5kIHN1cHBvcnRzIHRoZSBjaXJjdWxhciBlY29ub215IG1vZGVsLiBUaHVzLCBlYWNoIHBhY2thZ2UncyBsYWJlbCBiZWNvbWVzIGEga2V5IHRvb2wgZm9yIHBhY2thZ2luZyByZWN5Y2xpbmcgYW5kIHJlc3BlY3QgZm9yIHRoZSBlbnZpcm9ubWVudC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJlZ3VsYXRpb24gYW5kIFJlcXVpcmVtZW50cyBmb3IgUGFja2FnaW5nIE1hcmtpbmdsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIHJlZ3VsYXRpb25zIG9uIHBhY2thZ2luZyBtYXJraW5nIGVzdGFibGlzaCBob3cgbWF0ZXJpYWxzIHNob3VsZCBiZSBpZGVudGlmaWVkIGFuZCB3aGF0IG1hbmRhdG9yeSBpbmZvcm1hdGlvbiBtdXN0IGFwcGVhciB0byBmYWNpbGl0YXRlIHByb3BlciB3YXN0ZSBtYW5hZ2VtZW50LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TGVnaXNsYXRpdmUgRnJhbWV3b3JrOiBSb3lhbCBEZWNyZWUgMTA1NS8yMDIybGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJveWFsIERlY3JlZSAxMDU1LzIwMjIgcmVndWxhdGVzIHBhY2thZ2luZyBhbmQgcGFja2FnaW5nIHdhc3RlIG1hbmFnZW1lbnQgaW4gU3BhaW4uIEl0IGltcG9zZXMgdGhlIG9ibGlnYXRpb24gdG8gbWFyayBwYWNrYWdlcyB3aXRoIHN5bWJvbHMgdGhhdCBhbGxvdyB1c2VycyB0byBpZGVudGlmeSB0aGUgbWF0ZXJpYWwgYW5kIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIuIFRoaXMgbGVnaXNsYXRpb24gc2V0cyBob21vZ2VuZW91cyBjcml0ZXJpYSBmb3IgdGhlIGVudGlyZSB0ZXJyaXRvcnksIGFpbWluZyB0byBpbmNyZWFzZSByZWN5Y2xpbmcgcmF0ZXMsIGltcHJvdmUgdHJhY2VhYmlsaXR5LCBhbmQgcmVkdWNlIHRoZSBlbnZpcm9ubWVudGFsIGltcGFjdCBvZiB3YXN0ZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBSb3lhbCBEZWNyZWUgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIG1hcmtpbmcgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQsIGRlcGVuZGluZyBvbiB0aGUgbWF0ZXJpYWwuIFBsYXN0aWMsIGNhcmRib2FyZCwgcGFwZXIsIG1ldGFsLCBhbmQgZ2xhc3MgbXVzdCBiZSBjb3JyZWN0bHkgaWRlbnRpZmllZCwgYW5kIG11bHRpbGF5ZXIgcGFja2FnZXMgcmVxdWlyZSBhIHNwZWNpZmljIHN5bWJvbCByZWZsZWN0aW5nIHRoZWlyIGNvbXBvc2l0aW9uLiBBZGRpdGlvbmFsbHksIGl0IGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBkb21lc3RpYywgY29tbWVyY2lhbCwgYW5kIGluZHVzdHJpYWwgcGFja2FnaW5nLCByZWd1bGF0aW5nIHRoZSBtYXJraW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gZWFjaCBjYXNlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RGlmZmVyZW5jZXMgQmV0d2VlbiBNYW5kYXRvcnkgYW5kIFZvbHVudGFyeSBNYXJraW5nbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE5vdCBhbGwgc3ltYm9scyBvbiBwYWNrYWdpbmcgYXJlIG1hbmRhdG9yeSBieSBsYXcuIFRoZSBtYW5kYXRvcnkgbWFya2luZyBpbmNsdWRlcyB0aGUgY29kZXMgaWRlbnRpZnlpbmcgdGhlIHBhY2thZ2luZyBtYXRlcmlhbCwgdGhlIHBpY3RvZ3JhbXMgZm9yIGNvcnJlY3Qgc2VwYXJhdGlvbiwgYW5kIGluIHNvbWUgY2FzZXMsIHN5bWJvbHMgZm9yIHJldXNhYmxlIG9yIGNvbXBvc3RhYmxlIHBhY2thZ2luZywgd2hlcmUgYXBwbGljYWJsZS4gVGhlIG9iamVjdGl2ZSBpcyB0byBlbnN1cmUgdGhhdCBjb25zdW1lcnMgY2FuIHByb3Blcmx5IHNlcGFyYXRlIHdhc3RlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Vm9sdW50YXJ5IG1hcmtpbmcgaW5jbHVkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBub3QgcmVxdWlyZWQgYnkgbGF3LCBzdWNoIGFzIHRoZSBhbW91bnQgb2YgcmVjeWNsZWQgbWF0ZXJpYWwsIHRoZSBjYXJib24gZm9vdHByaW50LCBvciBjZXJ0YWluIHN1c3RhaW5hYmlsaXR5IHN5bWJvbHMuIFRoZXNlIGNhbiBwcm92aWRlIGFkZGVkIHZhbHVlIGZvciBjb25zdW1lcnMgYnV0IGRvIG5vdCByZXBsYWNlIHRoZSBtYW5kYXRvcnkgbGFiZWxpbmcgcmVxdWlyZWQgYnkgdGhlIFJveWFsIERlY3JlZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJlcXVpcmVtZW50cyBmb3IgQ29tcGFuaWVzIGFuZCBDaXRpemVucycgUmVzcG9uc2liaWxpdGllc2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkNvbXBhbmllczwvc3Ryb25nPjxicj5Db21wYW5pZXMgcmVzcG9uc2libGUgZm9yIG1hcmtldGluZyBwYWNrYWdlcyBtdXN0IGVuc3VyZSBhbGwgdGhlaXIgcGFja2FnaW5nIGNvbXBsaWVzIHdpdGggbGVnYWwgbWFya2luZy4gVGhpcyBpbmNsdWRlcyBwbGFjaW5nIHRoZSByZWN5Y2xpbmcgc3ltYm9scyBhbmQgbWF0ZXJpYWwgaWRlbnRpZmljYXRpb24gY29kZXMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSB0eXBlIG9mIHdhc3RlLCB0eXBvZ3JhcGh5LCBhbmQgdmlzaWJpbGl0eSBzZXQgYnkgbGVnaXNsYXRpb24uIFRoZXkgbXVzdCBhbHNvIGVuc3VyZSB0aGUgaW5mb3JtYXRpb24gaXMgY2xlYXIgYW5kIGFjY2Vzc2libGUgdG8gY29uc3VtZXJzLCBhdm9pZGluZyBjb25mdXNpb24gdGhhdCBjb3VsZCBhZmZlY3Qgd2FzdGUgbWFuYWdlbWVudC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Q2l0aXplbnM8L3N0cm9uZz48YnI+Q29ycmVjdCBzZXBhcmF0aW9uIGFuZCBkaXNwb3NhbCBvZiBwYWNrYWdpbmcgZm9sbG93aW5nIHRoZSBzeW1ib2xzIGFuZCBwaWN0b2dyYW1zIGFyZSBhIHNoYXJlZCByZXNwb25zaWJpbGl0eS4gVXNlcnMgbXVzdCBjb25zdWx0IHRoZSBwaWN0b2dyYW1zIGFuZCBpbnN0cnVjdGlvbnMgb24gcGFja2FnaW5nIHRvIGNvbXBseSB3aXRoIGN1cnJlbnQgcmVndWxhdGlvbnMgYW5kIGNvbnRyaWJ1dGUgdG8gZWZmZWN0aXZlIHJlY3ljbGluZy4gQ2l0aXplbiBpbnZvbHZlbWVudCBpcyBlc3NlbnRpYWwgdG8gbWFpbnRhaW4gdGhlIG1hdGVyaWFsIGN5Y2xlIGFuZCBhZHZhbmNlIHRvd2FyZHMgYSBjaXJjdWxhciBlY29ub215LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q29tcGxpYW5jZSB3aXRoIHRoaXMgcmVndWxhdGlvbiBhbmQgY2xlYXIgbGFiZWxpbmcgYXJlIGVzc2VudGlhbCBmb3IgYWNoaWV2aW5nIHdhc3RlIHJlZHVjdGlvbiBhbmQgcmVjeWNsaW5nIHRhcmdldHMgc2V0IGF0IEV1cm9wZWFuIGFuZCBuYXRpb25hbCBsZXZlbHMuIFByb3Blcmx5IGFwcGx5aW5nIG1hcmtpbmcgb24gcGFja2FnaW5nIGhlbHBzIHByZXZlbnQgZXJyb3JzIGluIHNlcGFyYXRpb24gYW5kIG9wdGltaXplcyB0aGUgZW50aXJlIHJlY3ljbGluZyBwcm9jZXNzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SG93IHRvIElkZW50aWZ5IGFuZCBDb3JyZWN0bHkgVXNlIFJlY3ljbGluZyBTeW1ib2xzbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEtub3dpbmcgaG93IHRvIGxvY2F0ZSBhbmQgdW5kZXJzdGFuZCByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgaXMgZXNzZW50aWFsIGZvciBwcm9wZXIgd2FzdGUgbWFuYWdlbWVudC4gVGhlc2UgaWNvbnMgcHJvdmlkZSBkaXJlY3QgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhY2thZ2luZyBtYXRlcmlhbCBhbmQgaXRzIGRlc3RpbnkgaW4gdGhlIHJlY3ljbGluZyBwcm9jZXNzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50V2hlcmUgdG8gRmluZCB0aGUgU3ltYm9sc2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSZWN5Y2xpbmcgc3ltYm9scyBhcmUgdXN1YWxseSBwbGFjZWQgaW4gZGlzY3JldGUgYnV0IHZpc2libGUgbG9jYXRpb25zIG9uIHRoZSBwYWNrYWdpbmc6ZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEJvdHRvbSBvciBiYWNrIG9mIGJvdHRsZXMsIGphcnMsIGFuZCBib3hlcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE5lYXIgdGhlIGluZ3JlZGllbnQgbGFiZWwgb3IgaW4gdGhlIHByb2R1Y3QgZGVzY3JpcHRpb24uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPbiB0aGUgc2VhbCBvciBsaWQsIGVzcGVjaWFsbHkgb24gc21hbGwgcGFja2FnZXMuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPbiBiYWdzLCB0aGV5IG9mdGVuIGFwcGVhciBjbG9zZSB0byBhbiBlZGdlIG9yIGFsb25nc2lkZSB1c2FnZSBpbnN0cnVjdGlvbnMuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb3JyZWN0bHkgcmVhZGluZyB0aGUgc3ltYm9sIGVuc3VyZXMgeW91IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoZSBwYWNrYWdlIGFmdGVyIHVzZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFByb3BlciBNYXRlcmlhbCBTZXBhcmF0aW9ubGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZvciBjb3JyZWN0IHdhc3RlIHNlcGFyYXRpb24sIHBheSBhdHRlbnRpb24gdG8gdGhlIHN5bWJvbDpkcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SWRlbnRpZnkgdGhlIG1hdGVyaWFsIChwbGFzdGljLCBnbGFzcywgbWV0YWwsIHBhcGVyLCBjYXJkYm9hcmQpIGFjY29yZGluZyB0byB0aGUgcGljdG9ncmFtIG9yIHJlc2luIGNvZGUuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnREZXBvc2l0IGVhY2ggd2FzdGUgaW4gaXRzIGNvcnJlc3BvbmRpbmcgY29udGFpbmVyOiB5ZWxsb3cgZm9yIHBsYXN0aWNzIGFuZCBjYW5zLCBibHVlIGZvciBwYXBlciBhbmQgY2FyZGJvYXJkLCBncmVlbiBmb3IgZ2xhc3MuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJZiB0aGUgcGFja2FnZSBpcyBjb21wb3N0YWJsZSwgbG9vayBmb3IgdGhlIG9yZ2FuaWMgY29udGFpbmVyIG9yIGhvbWUgY29tcG9zdGVyIGlmIGFsbG93ZWQgaW4geW91ciBtdW5pY2lwYWxpdHkuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSZWNvbW1lbmRlZCBQcmFjdGljZXM6IFdhc2ggYW5kIFNlcGFyYXRlbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q29tcGxldGVseSBlbXB0eSBhbnkgcmVtYWluaW5nIGxpcXVpZHMgb3IgZm9vZCBiZWZvcmUgZGlzcG9zaW5nIG9mIHRoZSBwYWNrYWdlLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TGlnaHRseSByaW5zZSBwYWNrYWdlcyB0aGF0IGNvbnRhaW5lZCBncmVhc3kgb3Igc3RpY2t5IHN1YnN0YW5jZXMsIGF2b2lkaW5nIGNvbnRhbWluYXRpb24gb2YgcmVjeWNsZWQgbWF0ZXJpYWxzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U2VwYXJhdGUgbGlkcywgbGFiZWxzLCBhbmQgb3RoZXIgY29tcG9uZW50cyB0aGF0IG1pZ2h0IGJlIG1hZGUgb2YgYSBkaWZmZXJlbnQgbWF0ZXJpYWwgZnJvbSB0aGUgbWFpbiBvbmUuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnREbyBub3QgbmVzdCBvciBwbGFjZSBzbWFsbCBwYWNrYWdlcyBpbnNpZGUgb3RoZXJzOyB0aGlzIGNvbXBsaWNhdGVzIHJlY3ljbGluZyB3aGVuIHRoZXkgcmVhY2ggdGhlIGZhY2lsaXR5LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGlwcyB0byBBdm9pZCBDb21tb24gTWlzdGFrZXMgYW5kIFByb21vdGUgU3VzdGFpbmFiaWxpdHlsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnREbyBub3QgZGVwb3NpdCBvYmplY3RzIHdpdGggaW5zZXBhcmFibGUgbWl4ZWQgbWF0ZXJpYWxzIGluIGNvbnZlbnRpb25hbCByZWN5Y2xpbmcgYmlucy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudERvIG5vdCB0aHJvdyB1bnJlY29nbml6ZWQgcGFja2FnZXMgb3IgcGFja2FnZXMgd2l0aG91dCBzeW1ib2xzIGluIHNlbGVjdGl2ZSByZWN5Y2xpbmcuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBbHdheXMgY2hlY2sgdGhlIHBpY3RvZ3JhbXM6IGV2ZW4gc21hbGwgZGV0YWlscywgbGlrZSBhIGNvbG9yIGJhbmQsIG1heSBpbmRpY2F0ZSB0aGUgcmlnaHQgY29udGFpbmVyLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50V2hlbmV2ZXIgcG9zc2libGUsIG9wdCBmb3IgcmV1c2FibGUgcGFja2FnaW5nIG9yIG1hdGVyaWFscyB0aGF0IGFyZSBlYXNpbHkgcmVjeWNsYWJsZSwgbGltaXRpbmcgdGhlIHVzZSBvZiBjb21wbGV4IG9yIHNpbmdsZS11c2UgcGxhc3RpY3MuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRTdGF5IGluZm9ybWVkIGFib3V0IGxvY2FsIHJlZ3VsYXRpb25zLCBhcyB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgaW4gcmVjeWNsaW5nIGNlcnRhaW4gbWF0ZXJpYWxzIGRlcGVuZGluZyBvbiB0aGUgbXVuaWNpcGFsaXR5LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QXBwbHlpbmcgdGhlc2UgdGlwcyBhbmQgc3VzdGFpbmFibGUgcHJhY3RpY2VzIGVuc3VyZXMgYmV0dGVyIHJlc291cmNlIHVzZSBhbmQgcmVpbmZvcmNlcyB0aGUgZW52aXJvbm1lbnRhbCBiZW5lZml0cyBvZiByZWN5Y2xpbmcgcGFja2FnaW5nIHN5bWJvbHMuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcmFjdGljYWwgR3VpZGUgZm9yIE9wdGltYWwgUGFja2FnaW5nIFdhc3RlIE1hbmFnZW1lbnRsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RWZmaWNpZW50bHkgbWFuYWdpbmcgcGFja2FnaW5nIHdhc3RlIHJlcXVpcmVzIGF0dGVudGlvbiwga25vd2xlZGdlIG9mIHN5bWJvbHMsIGFuZCBhIHdpbGxpbmduZXNzIHRvIHJlZHVjZSBlbnZpcm9ubWVudGFsIGltcGFjdC4gRXN0YWJsaXNoaW5nIGEgY2xlYXIgcm91dGluZSBmYWNpbGl0YXRlcyByZWN5Y2xpbmcgYW5kIGZvc3RlcnMgcmVzcG9uc2libGUgaGFiaXRzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3RlcHMgZm9yIEVmZmljaWVudCBSZWN5Y2xpbmcgVXNpbmcgU3ltYm9sc2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxicj48cD48c3Ryb25nPklkZW50aWZ5IHRoZSBQYWNrYWdpbmcgTWF0ZXJpYWw8L3N0cm9uZz48YnI+TG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3ltYm9sOiBNb2JpdXMgVHJpYW5nbGUsIHJlc2luIGNvZGUsIG9yIGNvbnRhaW5lciBwaWN0b2dyYW0uIFRoaXMgaW5mb3JtYXRpb24gd2lsbCB0ZWxsIHlvdSB0aGUgY29ycmVjdCBjb250YWluZXIuPC9wPjxicj5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxicj48cD48c3Ryb25nPkNsZWFuIGFuZCBTZXBhcmF0ZTwvc3Ryb25nPjxicj5NYWtlIHN1cmUgdG8gY29tcGxldGVseSBlbXB0eSB0aGUgcGFja2FnZSBhbmQsIGlmIHBvc3NpYmxlLCByaW5zZSBpdC4gUmVtb3ZlIGxpZHMsIGxhYmVscywgb3Igb3RoZXIgZWxlbWVudHMgb2YgZGlmZmVyZW50IG1hdGVyaWFscy48L3A+PGJyPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PGJyPjxwPjxzdHJvbmc+RGVwb3NpdCBpbiB0aGUgQ29ycmVjdCBDb250YWluZXI8L3N0cm9uZz48L3A+PGJyPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRZZWxsb3c6IHBsYXN0aWNzIGFuZCBjYW5zLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Qmx1ZTogcGFwZXIgYW5kIGNhcmRib2FyZC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEdyZWVuOiBnbGFzcy48YnI+IENoZWNrIHRoZSBzeW1ib2wgaWYgdGhlcmUgYXJlIGRvdWJ0cy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PGJyPjxwPjxzdHJvbmc+QXZvaWQgTWl4aW5nIFdhc3RlPC9zdHJvbmc+PGJyPkRvIG5vdCBuZXN0IHNtYWxsIHBhY2thZ2VzIGluc2lkZSBvdGhlcnMgb3IgY29tYmluZSBkaWZmZXJlbnQgbWF0ZXJpYWxzLjwvcD48YnI+aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8YnI+PHA+PHN0cm9uZz5DaGVjayBmb3IgU3BlY2lhbCBMYWJlbHM8L3N0cm9uZz48YnI+Rm9yIGNvbXBvc3RhYmxlLCByZXVzYWJsZSwgb3Igb3RoZXIgY2VydGlmaWVkIHBhY2thZ2luZywgZm9sbG93IHRoZSBzcGVjaWZpYyBpbnN0cnVjdGlvbnMgcHJvdmlkZWQuPC9wPjxicj5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJldXNlIGFuZCBXYXN0ZSBSZWR1Y3Rpb25sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcmlvcml0aXplIHRoZSB1c2Ugb2YgcmV1c2FibGUgcGFja2FnaW5nIHdoZW5ldmVyIHBvc3NpYmxlLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmVkdWNlIHNpbmdsZS11c2UgcGFja2FnaW5nIGJ5IGJ1eWluZyBpbiBidWxrIG9yIG9wdGluZyBmb3Igc3VzdGFpbmFibGUgb3B0aW9ucy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJldXNlIGJhZ3MsIGphcnMsIG9yIGJveGVzIGJlZm9yZSByZWN5Y2xpbmcgdGhlbSwgZ2l2aW5nIHRoZW0gYSBzZWNvbmQgbGlmZSBhdCBob21lLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmVzb3VyY2VzIGFuZCBHdWlkYW5jZSBmb3IgVW5jZXJ0YWludHlsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDaGVjayBtdW5pY2lwYWwgY2xlYW4gcG9pbnRzIGZvciB3YXN0ZSBvdXRzaWRlIHRoZSB1c3VhbCBzeXN0ZW0uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRHZXQgaW5mb3JtZWQgdGhyb3VnaCBtdW5pY2lwYWwgZ3VpZGVzLCBvZmZpY2lhbCB3ZWJzaXRlcywgYW5kIHJlY3ljbGluZyBhcHBzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UmVtZW1iZXIgdGhhdCBHcmVlbnVzbyBwYWNrYWdpbmcgcHJvdmlkZXMgY2xlYXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1hdGVyaWFsIGFuZCBjb3JyZWN0IHJlY3ljbGluZy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudElmIHVuc3VyZSBhYm91dCB0aGUgc3ltYm9sIG9yIHdhc3RlLCBjaGVjayBvbmxpbmUgcmVzb3VyY2VzIGZyb20gbXVuaWNpcGFsaXRpZXMgb3Igd2FzdGUgbWFuYWdlbWVudCBwb3J0YWxzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RW1icmFjaW5nIHRoaXMgZGFpbHkgcHJvY2VzcyB3aXRoIGF0dGVudGlvbiB0byBzeW1ib2xzIGhlbHBzIG9wdGltaXplIHBhY2thZ2luZyByZWN5Y2xpbmcuIENvcnJlY3QgaWRlbnRpZmljYXRpb24sIHNlcGFyYXRpb24sIGFuZCByZWR1Y3Rpb24gcG9zaXRpdmVseSBpbXBhY3QgdGhlIG1hdGVyaWFsIGN5Y2xlIGFuZCBlbnZpcm9ubWVudGFsIGNhcmUuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2Ryb3BDYXBwbGFjZWhvbGRlciDimbtjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2FsdGNhcHRpb25pbm5lckJsb2Nrc0dhcmJhZ2UgSWNvbnMgU2V0LiBSZWN5Y2xpbmcgVmVjdG9yIElsbHVzdHJhdGlvbi4gUmVjeWNsaW5nIEZsYXQgU3ltYm9scy4gUmVjeWNsaW5nIERlc2lnbiBTZXQuIEdhcmJhZ2UgUmVjeWNsaW5nIENvbGxlY3Rpb24uaWRsaW5rdXJsc2l6ZVNsdWdsaW5rRGVzdGluYXRpb248IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIHBhY2thZ2luZyB3ZSB1c2UgZGFpbHkgY2FycmllcyByZWN5Y2xpbmcgc3ltYm9scyB0aGF0IHdlIG9mdGVuIG92ZXJsb29rLiBLbm93aW5nIHRoZWlyIG1lYW5pbmcgaGVscHMgdXMgZGlzcG9zZSBvZiBlYWNoIG1hdGVyaWFsIGluIHRoZSBjb3JyZWN0IGJpbiwgcmVkdWNlIGVycm9ycywgYW5kIGNhcmUgZm9yIHRoZSBlbnZpcm9ubWVudC4gVGhpcyBndWlkZSB3aWxsIGhlbHAgeW91IGlkZW50aWZ5IHRoZXNlIHN5bWJvbHMgYW5kIHVzZSB0aGVtIHRvIHJlY3ljbGUgZWFzaWx5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBwcmVzZW5jZSBvZiByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgb2Z0ZW4gZ2VuZXJhdGVzIGZyZXF1ZW50IHF1ZXN0aW9uczogRG9lcyBpdCBtZWFuIHRoZSBwYWNrYWdlIGlzIGFsd2F5cyByZWN5Y2xhYmxlPyBXaGljaCBiaW4gc2hvdWxkIGl0IGdvIGludG8\/IERvIGFsbCBjaXRpZXMgdXNlIHRoZSBzYW1lIHN5bWJvbHM\/IFRoZXNlIHF1ZXN0aW9ucyBhcmUgY29tbW9uIGFuZCBoaWdobGlnaHQgdGhlIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2lnbmFscyB0aGF0IGFwcGVhciBvbiBib3R0bGVzLCBjYXJ0b25zLCBjYW5zLCBhbmQgYm94ZXMgd2UgdXNlIGRhaWx5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkJhc2ljIFJlY3ljbGluZyBTeW1ib2xzIGFuZCBUaGVpciBGdW5jdGlvbjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk90aGVyIGNvbW1vbiBzeW1ib2xzIG9uIHBhY2thZ2luZyBhcmUgcGljdG9ncmFtcyBvZiBjb2xvcmVkIGNvbnRhaW5lcnMsIHdoaWNoIGRpcmVjdGx5IGluZGljYXRlIHdoaWNoIGZyYWN0aW9uIHRoZSB3YXN0ZSBiZWxvbmdzIHRvOiB5ZWxsb3cgZm9yIHBsYXN0aWNzIGFuZCBjYW5zLCBibHVlIGZvciBwYXBlciBhbmQgY2FyZGJvYXJkLCBncmVlbiBmb3IgZ2xhc3MuIFRoZXNlIGljb25zIGhlbHAgY29uc3VtZXJzIGNvcnJlY3RseSBzZXBhcmF0ZSB3YXN0ZSBhdCB0aGUgc291cmNlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkltcG9ydGFuY2Ugb2YgUmVjb2duaXppbmcgU3ltYm9scyBmb3IgUHJvcGVyIFdhc3RlIE1hbmFnZW1lbnQ8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlVuZGVyc3RhbmRpbmcgdGhlIG1lYW5pbmcgb2YgdGhlc2Ugc3ltYm9scyBpcyBrZXkgdG8gYXZvaWRpbmcgbWlzdGFrZXMgaW4gbWF0ZXJpYWwgc2VwYXJhdGlvbi4gQSBwYWNrYWdlIHdpdGggYSBtaXNpbnRlcnByZXRlZCBzeW1ib2wgY2FuIGVuZCB1cCBpbiB0aGUgd3JvbmcgY29udGFpbmVyLCBjb21wbGljYXRpbmcgdGhlIHJlY3ljbGluZyBwcm9jZXNzIGFuZCBjb250YW1pbmF0aW5nIG90aGVyIGZyYWN0aW9ucy4gVGhlcmVmb3JlLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHN5bWJvbHMgYmVmb3JlIGRpc3Bvc2luZyBvZiBhIHBhY2thZ2UgYWxsb3dzIHVzIHRvIGFjdCByZXNwb25zaWJseSBhbmQgZWZmaWNpZW50bHksIGZhY2lsaXRhdGluZyByZWN5Y2xpbmcgaW4gcGxhbnRzIGFuZCBoZWxwaW5nIHRvIHJlZHVjZSB0aGUgdm9sdW1lIG9mIHdhc3RlIGRlc3RpbmVkIGZvciBsYW5kZmlsbHMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SW4gc3VtbWFyeSwgcmVjeWNsaW5nIHN5bWJvbHMgb24gcGFja2FnaW5nIGRvIG1vcmUgdGhhbiBpbmRpY2F0ZSB0aGUgcG9zc2liaWxpdHkgb2YgcmVjeWNsaW5nOyB0aGV5IGFyZSBhbiBlc3NlbnRpYWwgdG9vbCBmb3IgcHJvcGVyIHdhc3RlIG1hbmFnZW1lbnQuIENvcnJlY3QgaW50ZXJwcmV0YXRpb24gaGVscHMgY2xvc2UgdGhlIGxvb3AgYW5kIHByb21vdGVzIHN1c3RhaW5hYmxlIGhhYml0cyBpbiBkYWlseSBsaWZlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPk1haW4gUmVjeWNsaW5nIFN5bWJvbHMgb24gUGFja2FnaW5nIGFuZCBUaGVpciBNZWFuaW5nPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5SZWNvZ25pemluZyByZWN5Y2xpbmcgc3ltYm9scyBpcyBjcnVjaWFsIGZvciBpZGVudGlmeWluZyB0aGUgbWF0ZXJpYWwgb2YgdGhlIHBhY2thZ2luZyBhbmQga25vd2luZyB3aGljaCBjb250YWluZXIgaXQgc2hvdWxkIGJlIHBsYWNlZCBpbi4gVGhlc2Ugc3ltYm9scyBwcm92aWRlIHF1aWNrIGluZm9ybWF0aW9uIGFib3V0IGNvbXBvc2l0aW9uLCByZWN5Y2xhYmlsaXR5LCBhbmQgb3RoZXIgaW1wb3J0YW50IGNoYXJhY3RlcmlzdGljcyB0aGF0IGZvc3RlciBlZmZpY2llbnQgd2FzdGUgbWFuYWdlbWVudC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5Nb3N0IENvbW1vbiBSZWN5Y2xpbmcgU3ltYm9sczwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5Nb2JpdXMgVHJpYW5nbGUgKOKZu++4jyk8L3N0cm9uZz48YnI+VGhpcyBpcyB0aGUgaW50ZXJuYXRpb25hbCByZWN5Y2xpbmcgc3ltYm9sLCBjb25zaXN0aW5nIG9mIHRocmVlIGNoYXNpbmcgYXJyb3dzIGZvcm1pbmcgYSB0cmlhbmdsZS4gSXQgaW5kaWNhdGVzIHRoYXQgdGhlIHByb2R1Y3Qgb3IgbWF0ZXJpYWwgaXMgcmVjeWNsYWJsZS4gSXQgc29tZXRpbWVzIGluY29ycG9yYXRlcyBhIHBlcmNlbnRhZ2UgaW5zaWRlIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiByZWN5Y2xlZCBtYXRlcmlhbC4gSWYgaXQgaGFzIGEgbnVtYmVyIG9yIGludGVybmFsIGluaXRpYWxzLCBpdCBpbmRpY2F0ZXMgdGhlIHJlc2luIGNvZGUgZm9yIHBsYXN0aWNzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+UmVzaW4gQ29kZXMgKFBsYXN0aWNzKTwvc3Ryb25nPjxicj5JbnNpZGUgdGhlIHJlY3ljbGluZyB0cmlhbmdsZSwgcGxhc3RpYyBwYWNrYWdlcyBzaG93IGEgbnVtYmVyIGZyb20gMSB0byA3IGFuZCBzb21ldGltZXMgYW4gYWJicmV2aWF0aW9uOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+MSAoUEVUIG9yIFBFVEUpOiBVc2VkIGluIHdhdGVyIG9yIHNvZnQgZHJpbmsgYm90dGxlcy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjIgKEhEUEUpOiBNaWxrIGNvbnRhaW5lcnMsIGRldGVyZ2VudCBib3R0bGVzLCBvciBiYWdzLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+MyAoUFZDKTogRGV0ZXJnZW50IGJvdHRsZXMgYW5kIHNvbWUgZm9vZCBwYWNrYWdpbmcuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT40IChMRFBFKTogRmxleGlibGUgcGxhc3RpYyBiYWdzIGFuZCBmaWxtcy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjUgKFBQKTogTGlkcywgc3RyYXdzLCBhbmQgeW9ndXJ0IGNvbnRhaW5lcnMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT42IChQUyk6IERpc3Bvc2FibGUgY3VwcyBvciBtZWF0IHRyYXlzLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+NyAoT3RoZXIpOiBQbGFzdGljcyBub3QgaW5jbHVkZWQgaW4gdGhlIHByZXZpb3VzIGNhdGVnb3JpZXMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPkNvbnRhaW5lciBQaWN0b2dyYW1zPC9zdHJvbmc+PGJyPlRoZXNlIGFyZSBpY29ucyByZXByZXNlbnRpbmcgdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBmb3IgZWFjaCBwYWNrYWdlOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+WWVsbG93IGNvbnRhaW5lcjogUGxhc3RpY3MgYW5kIGNhbnMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5CbHVlIGNvbnRhaW5lcjogUGFwZXIgYW5kIGNhcmRib2FyZC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkdyZWVuIGNvbnRhaW5lcjogR2xhc3MuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U29tZSBwYWNrYWdlcyBkaXJlY3RseSBzaG93IHRoZSBwaWN0b2dyYW0gb3IgYSBzdHJpcCBvZiB0aGUgb2ZmaWNpYWwgY29sb3IuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RGlmZmVyZW5jZXMgQmV0d2VlbiBTeW1ib2xzIEFjY29yZGluZyB0byBNYXRlcmlhbDwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+Q2FyZGJvYXJkIGFuZCBQYXBlcjwvc3Ryb25nPjxicj5DYXJyeSB0aGUgc2ltcGxlIHJlY3ljbGluZyBzeW1ib2wsIHNvbWV0aW1lcyBhY2NvbXBhbmllZCBieSBmb2xkZWQgcGFwZXIgcGljdG9ncmFtcyBvciB0aGUgYmx1ZSBjb250YWluZXIgaWNvbi4gQWltIHRvIHJlY3ljbGUgd2FzdGUgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZnJhY3Rpb24uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5HbGFzczwvc3Ryb25nPjxicj5Vc3VhbGx5IG1hcmtlZCB3aXRoIHRoZSBpY29uIG9mIGEgZ2xhc3MgY29udGFpbmVyIGFuZCBhIGNpcmN1bGFyIGFycm93LCBvciB0aGUgZ3JlZW4gcGljdG9ncmFtLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+TWV0YWw8L3N0cm9uZz48YnI+Q2FucyBhbmQgbWV0YWwgcGFja2FnaW5nIG1heSBkaXNwbGF5IGEgbWFnbmV0IHN5bWJvbCwgaW5kaWNhdGluZyB0aGVpciByZWN5Y2xhYmlsaXR5IHRocm91Z2ggbWFnbmV0aWMgc2VwYXJhdGlvbiwgb3Igc2ltcGx5IHRoZSB0cmFkaXRpb25hbCB0cmlhbmdsZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5PdGhlciBSZWxldmFudCBTeW1ib2xzPC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPkJQQSBGcmVlPC9zdHJvbmc+PGJyPkluZGljYXRlcyB0aGUgYWJzZW5jZSBvZiBiaXNwaGVub2wgQSwgYSBwb3RlbnRpYWxseSBoYXJtZnVsIGNoZW1pY2FsIGluIHBsYXN0aWNzLiBJdCBpcyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byByZWN5Y2xpbmcgYnV0IHRvIHRoZSBmb29kIHNhZmV0eSBvZiB0aGUgcGFja2FnZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPkNvbXBvc3RhYmxlPC9zdHJvbmc+PGJyPlRoZSBjb21wb3N0YWJsZSBzeW1ib2wgdHlwaWNhbGx5IGRpc3BsYXlzIGEgbGVhZiBvciBzcGlyYWwsIGluZGljYXRpbmcgdGhhdCB0aGUgcGFja2FnZSBjYW4gZGVjb21wb3NlIGFsb25nc2lkZSBvcmdhbmljIHdhc3RlIHVuZGVyIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLiBJdCBpcyBjcnVjaWFsIG5vdCB0byBtaXggdGhlc2UgcGFja2FnZXMgd2l0aCBjb252ZW50aW9uYWwgcGxhc3RpYyB3YXN0ZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPlJldXNhYmxlPC9zdHJvbmc+PGJyPkEgc3ltYm9sIG9mIHR3byBjaXJjdWxhciBhcnJvd3Mgb3IgdGhlIHRleHQgcmV1c2FibGUgaWRlbnRpZmllcyBwYWNrYWdlcyBkZXNpZ25lZCB0byBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIGJlZm9yZSBlbnRlcmluZyB0aGUgcmVjeWNsaW5nIGN5Y2xlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkNvbXBsZW1lbnRhcnkgU3ltYm9sczwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkZvb2QgQ29udGFjdCBTYWZlPC9zdHJvbmc+OiBBIGNyb3NzZWQgZ2xhc3MgYW5kIGZvcmsgaW5kaWNhdGUgdGhhdCB0aGUgcGFja2FnZSBpcyBzYWZlIGZvciBmb29kLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5EaXNwb3NlIGF0IENvbGxlY3Rpb24gUG9pbnQ8L3N0cm9uZz46IEZvciBwcm9kdWN0cyB0aGF0IHNob3VsZCBub3QgZ28gaW4gZG9tZXN0aWMgY29udGFpbmVycy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+R3JlZW4gRG90PC9zdHJvbmc+OiBJbmRpY2F0ZXMgdGhhdCB0aGUgbWFudWZhY3R1cmVyIGNvbXBsaWVzIHdpdGggcGFja2FnaW5nIHdhc3RlIG1hbmFnZW1lbnQsIHRob3VnaCBpdCBkb2Vzbid0IGd1YXJhbnRlZSB0aGUgcmVjeWNsYWJpbGl0eSBvZiB0aGUgcHJvZHVjdC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Db3JyZWN0bHkgaW50ZXJwcmV0aW5nIHRoZXNlIHN5bWJvbHMgY29udHJpYnV0ZXMgdG8gcHJlY2lzZSBzZWxlY3RpdmUgc29ydGluZywgZmFjaWxpdGF0ZXMgbWF0ZXJpYWwgcmVjeWNsaW5nLCBhbmQgc3VwcG9ydHMgdGhlIGNpcmN1bGFyIGVjb25vbXkgbW9kZWwuIFRodXMsIGVhY2ggcGFja2FnZSdzIGxhYmVsIGJlY29tZXMgYSBrZXkgdG9vbCBmb3IgcGFja2FnaW5nIHJlY3ljbGluZyBhbmQgcmVzcGVjdCBmb3IgdGhlIGVudmlyb25tZW50LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPlJlZ3VsYXRpb24gYW5kIFJlcXVpcmVtZW50cyBmb3IgUGFja2FnaW5nIE1hcmtpbmc8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSByZWd1bGF0aW9ucyBvbiBwYWNrYWdpbmcgbWFya2luZyBlc3RhYmxpc2ggaG93IG1hdGVyaWFscyBzaG91bGQgYmUgaWRlbnRpZmllZCBhbmQgd2hhdCBtYW5kYXRvcnkgaW5mb3JtYXRpb24gbXVzdCBhcHBlYXIgdG8gZmFjaWxpdGF0ZSBwcm9wZXIgd2FzdGUgbWFuYWdlbWVudC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5MZWdpc2xhdGl2ZSBGcmFtZXdvcms6IFJveWFsIERlY3JlZSAxMDU1LzIwMjI8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlJveWFsIERlY3JlZSAxMDU1LzIwMjIgcmVndWxhdGVzIHBhY2thZ2luZyBhbmQgcGFja2FnaW5nIHdhc3RlIG1hbmFnZW1lbnQgaW4gU3BhaW4uIEl0IGltcG9zZXMgdGhlIG9ibGlnYXRpb24gdG8gbWFyayBwYWNrYWdlcyB3aXRoIHN5bWJvbHMgdGhhdCBhbGxvdyB1c2VycyB0byBpZGVudGlmeSB0aGUgbWF0ZXJpYWwgYW5kIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIuIFRoaXMgbGVnaXNsYXRpb24gc2V0cyBob21vZ2VuZW91cyBjcml0ZXJpYSBmb3IgdGhlIGVudGlyZSB0ZXJyaXRvcnksIGFpbWluZyB0byBpbmNyZWFzZSByZWN5Y2xpbmcgcmF0ZXMsIGltcHJvdmUgdHJhY2VhYmlsaXR5LCBhbmQgcmVkdWNlIHRoZSBlbnZpcm9ubWVudGFsIGltcGFjdCBvZiB3YXN0ZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgUm95YWwgRGVjcmVlIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBtYXJraW5nIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkLCBkZXBlbmRpbmcgb24gdGhlIG1hdGVyaWFsLiBQbGFzdGljLCBjYXJkYm9hcmQsIHBhcGVyLCBtZXRhbCwgYW5kIGdsYXNzIG11c3QgYmUgY29ycmVjdGx5IGlkZW50aWZpZWQsIGFuZCBtdWx0aWxheWVyIHBhY2thZ2VzIHJlcXVpcmUgYSBzcGVjaWZpYyBzeW1ib2wgcmVmbGVjdGluZyB0aGVpciBjb21wb3NpdGlvbi4gQWRkaXRpb25hbGx5LCBpdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gZG9tZXN0aWMsIGNvbW1lcmNpYWwsIGFuZCBpbmR1c3RyaWFsIHBhY2thZ2luZywgcmVndWxhdGluZyB0aGUgbWFya2luZyB0aGF0IGNvcnJlc3BvbmRzIHRvIGVhY2ggY2FzZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5EaWZmZXJlbmNlcyBCZXR3ZWVuIE1hbmRhdG9yeSBhbmQgVm9sdW50YXJ5IE1hcmtpbmc8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk5vdCBhbGwgc3ltYm9scyBvbiBwYWNrYWdpbmcgYXJlIG1hbmRhdG9yeSBieSBsYXcuIFRoZSBtYW5kYXRvcnkgbWFya2luZyBpbmNsdWRlcyB0aGUgY29kZXMgaWRlbnRpZnlpbmcgdGhlIHBhY2thZ2luZyBtYXRlcmlhbCwgdGhlIHBpY3RvZ3JhbXMgZm9yIGNvcnJlY3Qgc2VwYXJhdGlvbiwgYW5kIGluIHNvbWUgY2FzZXMsIHN5bWJvbHMgZm9yIHJldXNhYmxlIG9yIGNvbXBvc3RhYmxlIHBhY2thZ2luZywgd2hlcmUgYXBwbGljYWJsZS4gVGhlIG9iamVjdGl2ZSBpcyB0byBlbnN1cmUgdGhhdCBjb25zdW1lcnMgY2FuIHByb3Blcmx5IHNlcGFyYXRlIHdhc3RlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlZvbHVudGFyeSBtYXJraW5nIGluY2x1ZGVzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gbm90IHJlcXVpcmVkIGJ5IGxhdywgc3VjaCBhcyB0aGUgYW1vdW50IG9mIHJlY3ljbGVkIG1hdGVyaWFsLCB0aGUgY2FyYm9uIGZvb3RwcmludCwgb3IgY2VydGFpbiBzdXN0YWluYWJpbGl0eSBzeW1ib2xzLiBUaGVzZSBjYW4gcHJvdmlkZSBhZGRlZCB2YWx1ZSBmb3IgY29uc3VtZXJzIGJ1dCBkbyBub3QgcmVwbGFjZSB0aGUgbWFuZGF0b3J5IGxhYmVsaW5nIHJlcXVpcmVkIGJ5IHRoZSBSb3lhbCBEZWNyZWUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+UmVxdWlyZW1lbnRzIGZvciBDb21wYW5pZXMgYW5kIENpdGl6ZW5zJyBSZXNwb25zaWJpbGl0aWVzPC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5DaXRpemVuczwvc3Ryb25nPjxicj5Db3JyZWN0IHNlcGFyYXRpb24gYW5kIGRpc3Bvc2FsIG9mIHBhY2thZ2luZyBmb2xsb3dpbmcgdGhlIHN5bWJvbHMgYW5kIHBpY3RvZ3JhbXMgYXJlIGEgc2hhcmVkIHJlc3BvbnNpYmlsaXR5LiBVc2VycyBtdXN0IGNvbnN1bHQgdGhlIHBpY3RvZ3JhbXMgYW5kIGluc3RydWN0aW9ucyBvbiBwYWNrYWdpbmcgdG8gY29tcGx5IHdpdGggY3VycmVudCByZWd1bGF0aW9ucyBhbmQgY29udHJpYnV0ZSB0byBlZmZlY3RpdmUgcmVjeWNsaW5nLiBDaXRpemVuIGludm9sdmVtZW50IGlzIGVzc2VudGlhbCB0byBtYWludGFpbiB0aGUgbWF0ZXJpYWwgY3ljbGUgYW5kIGFkdmFuY2UgdG93YXJkcyBhIGNpcmN1bGFyIGVjb25vbXkuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Q29tcGxpYW5jZSB3aXRoIHRoaXMgcmVndWxhdGlvbiBhbmQgY2xlYXIgbGFiZWxpbmcgYXJlIGVzc2VudGlhbCBmb3IgYWNoaWV2aW5nIHdhc3RlIHJlZHVjdGlvbiBhbmQgcmVjeWNsaW5nIHRhcmdldHMgc2V0IGF0IEV1cm9wZWFuIGFuZCBuYXRpb25hbCBsZXZlbHMuIFByb3Blcmx5IGFwcGx5aW5nIG1hcmtpbmcgb24gcGFja2FnaW5nIGhlbHBzIHByZXZlbnQgZXJyb3JzIGluIHNlcGFyYXRpb24gYW5kIG9wdGltaXplcyB0aGUgZW50aXJlIHJlY3ljbGluZyBwcm9jZXNzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkhvdyB0byBJZGVudGlmeSBhbmQgQ29ycmVjdGx5IFVzZSBSZWN5Y2xpbmcgU3ltYm9sczwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+S25vd2luZyBob3cgdG8gbG9jYXRlIGFuZCB1bmRlcnN0YW5kIHJlY3ljbGluZyBzeW1ib2xzIG9uIHBhY2thZ2luZyBpcyBlc3NlbnRpYWwgZm9yIHByb3BlciB3YXN0ZSBtYW5hZ2VtZW50LiBUaGVzZSBpY29ucyBwcm92aWRlIGRpcmVjdCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGFja2FnaW5nIG1hdGVyaWFsIGFuZCBpdHMgZGVzdGlueSBpbiB0aGUgcmVjeWNsaW5nIHByb2Nlc3MuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+V2hlcmUgdG8gRmluZCB0aGUgU3ltYm9sczwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UmVjeWNsaW5nIHN5bWJvbHMgYXJlIHVzdWFsbHkgcGxhY2VkIGluIGRpc2NyZXRlIGJ1dCB2aXNpYmxlIGxvY2F0aW9ucyBvbiB0aGUgcGFja2FnaW5nOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Qm90dG9tIG9yIGJhY2sgb2YgYm90dGxlcywgamFycywgYW5kIGJveGVzLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+TmVhciB0aGUgaW5ncmVkaWVudCBsYWJlbCBvciBpbiB0aGUgcHJvZHVjdCBkZXNjcmlwdGlvbi48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk9uIHRoZSBzZWFsIG9yIGxpZCwgZXNwZWNpYWxseSBvbiBzbWFsbCBwYWNrYWdlcy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk9uIGJhZ3MsIHRoZXkgb2Z0ZW4gYXBwZWFyIGNsb3NlIHRvIGFuIGVkZ2Ugb3IgYWxvbmdzaWRlIHVzYWdlIGluc3RydWN0aW9ucy48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Db3JyZWN0bHkgcmVhZGluZyB0aGUgc3ltYm9sIGVuc3VyZXMgeW91IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoZSBwYWNrYWdlIGFmdGVyIHVzZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5Qcm9wZXIgTWF0ZXJpYWwgU2VwYXJhdGlvbjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rm9yIGNvcnJlY3Qgd2FzdGUgc2VwYXJhdGlvbiwgcGF5IGF0dGVudGlvbiB0byB0aGUgc3ltYm9sOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+SWRlbnRpZnkgdGhlIG1hdGVyaWFsIChwbGFzdGljLCBnbGFzcywgbWV0YWwsIHBhcGVyLCBjYXJkYm9hcmQpIGFjY29yZGluZyB0byB0aGUgcGljdG9ncmFtIG9yIHJlc2luIGNvZGUuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5EZXBvc2l0IGVhY2ggd2FzdGUgaW4gaXRzIGNvcnJlc3BvbmRpbmcgY29udGFpbmVyOiB5ZWxsb3cgZm9yIHBsYXN0aWNzIGFuZCBjYW5zLCBibHVlIGZvciBwYXBlciBhbmQgY2FyZGJvYXJkLCBncmVlbiBmb3IgZ2xhc3MuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5JZiB0aGUgcGFja2FnZSBpcyBjb21wb3N0YWJsZSwgbG9vayBmb3IgdGhlIG9yZ2FuaWMgY29udGFpbmVyIG9yIGhvbWUgY29tcG9zdGVyIGlmIGFsbG93ZWQgaW4geW91ciBtdW5pY2lwYWxpdHkuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+UmVjb21tZW5kZWQgUHJhY3RpY2VzOiBXYXNoIGFuZCBTZXBhcmF0ZTwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Db21wbGV0ZWx5IGVtcHR5IGFueSByZW1haW5pbmcgbGlxdWlkcyBvciBmb29kIGJlZm9yZSBkaXNwb3Npbmcgb2YgdGhlIHBhY2thZ2UuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5MaWdodGx5IHJpbnNlIHBhY2thZ2VzIHRoYXQgY29udGFpbmVkIGdyZWFzeSBvciBzdGlja3kgc3Vic3RhbmNlcywgYXZvaWRpbmcgY29udGFtaW5hdGlvbiBvZiByZWN5Y2xlZCBtYXRlcmlhbHMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5TZXBhcmF0ZSBsaWRzLCBsYWJlbHMsIGFuZCBvdGhlciBjb21wb25lbnRzIHRoYXQgbWlnaHQgYmUgbWFkZSBvZiBhIGRpZmZlcmVudCBtYXRlcmlhbCBmcm9tIHRoZSBtYWluIG9uZS48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkRvIG5vdCBuZXN0IG9yIHBsYWNlIHNtYWxsIHBhY2thZ2VzIGluc2lkZSBvdGhlcnM7IHRoaXMgY29tcGxpY2F0ZXMgcmVjeWNsaW5nIHdoZW4gdGhleSByZWFjaCB0aGUgZmFjaWxpdHkuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+VGlwcyB0byBBdm9pZCBDb21tb24gTWlzdGFrZXMgYW5kIFByb21vdGUgU3VzdGFpbmFiaWxpdHk8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RG8gbm90IGRlcG9zaXQgb2JqZWN0cyB3aXRoIGluc2VwYXJhYmxlIG1peGVkIG1hdGVyaWFscyBpbiBjb252ZW50aW9uYWwgcmVjeWNsaW5nIGJpbnMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5EbyBub3QgdGhyb3cgdW5yZWNvZ25pemVkIHBhY2thZ2VzIG9yIHBhY2thZ2VzIHdpdGhvdXQgc3ltYm9scyBpbiBzZWxlY3RpdmUgcmVjeWNsaW5nLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QWx3YXlzIGNoZWNrIHRoZSBwaWN0b2dyYW1zOiBldmVuIHNtYWxsIGRldGFpbHMsIGxpa2UgYSBjb2xvciBiYW5kLCBtYXkgaW5kaWNhdGUgdGhlIHJpZ2h0IGNvbnRhaW5lci48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPldoZW5ldmVyIHBvc3NpYmxlLCBvcHQgZm9yIHJldXNhYmxlIHBhY2thZ2luZyBvciBtYXRlcmlhbHMgdGhhdCBhcmUgZWFzaWx5IHJlY3ljbGFibGUsIGxpbWl0aW5nIHRoZSB1c2Ugb2YgY29tcGxleCBvciBzaW5nbGUtdXNlIHBsYXN0aWNzLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+U3RheSBpbmZvcm1lZCBhYm91dCBsb2NhbCByZWd1bGF0aW9ucywgYXMgdGhlcmUgYXJlIGRpZmZlcmVuY2VzIGluIHJlY3ljbGluZyBjZXJ0YWluIG1hdGVyaWFscyBkZXBlbmRpbmcgb24gdGhlIG11bmljaXBhbGl0eS48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3M8YSBocmVmPSJodHRwczovL3d3dy5ncmVlbnVzby5jb20vYmxvZy9jb3Jwb3JhdGUtc29jaWFsLXJlc3BvbnNpYmlsaXR5LXdoYXQtaXMtaXQtYW5kLXdoYXQtYXJlLWl0cy1wcmluY2lwbGVzLyIgZGF0YS10eXBlPSJsaW5rIiBkYXRhLWlkPSJodHRwczovL3d3dy5ncmVlbnVzby5jb20vYmxvZy9jb3Jwb3JhdGUtc29jaWFsLXJlc3BvbnNpYmlsaXR5LXdoYXQtaXMtaXQtYW5kLXdoYXQtYXJlLWl0cy1wcmluY2lwbGVzLyI+PC9hPjwhLS0gd3A6aW1hZ2UgeyJpZCI6MzQ3MzcsInNpemVTbHVnIjoibGFyZ2UiLCJsaW5rRGVzdGluYXRpb24iOiJub25lIn0gLS0+CjxwPjxzdHJvbmc+Q29tcGFuaWVzPC9zdHJvbmc+PGJyPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nL2NvcnBvcmF0ZS1zb2NpYWwtcmVzcG9uc2liaWxpdHktd2hhdC1pcy1pdC1hbmQtd2hhdC1hcmUtaXRzLXByaW5jaXBsZXMvIiBkYXRhLXR5cGU9ImxpbmsiIGRhdGEtaWQ9Imh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nL2NvcnBvcmF0ZS1zb2NpYWwtcmVzcG9uc2liaWxpdHktd2hhdC1pcy1pdC1hbmQtd2hhdC1hcmUtaXRzLXByaW5jaXBsZXMvIj5Db21wYW5pZXMgcmVzcG9uc2libGU8L2E+IGZvciBtYXJrZXRpbmcgcGFja2FnZXMgbXVzdCBlbnN1cmUgYWxsIHRoZWlyIHBhY2thZ2luZyBjb21wbGllcyB3aXRoIGxlZ2FsIG1hcmtpbmcuIFRoaXMgaW5jbHVkZXMgcGxhY2luZyB0aGUgcmVjeWNsaW5nIHN5bWJvbHMgYW5kIG1hdGVyaWFsIGlkZW50aWZpY2F0aW9uIGNvZGVzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgdHlwZSBvZiB3YXN0ZSwgdHlwb2dyYXBoeSwgYW5kIHZpc2liaWxpdHkgc2V0IGJ5IGxlZ2lzbGF0aW9uLiBUaGV5IG11c3QgYWxzbyBlbnN1cmUgdGhlIGluZm9ybWF0aW9uIGlzIGNsZWFyIGFuZCBhY2Nlc3NpYmxlIHRvIGNvbnN1bWVycywgYXZvaWRpbmcgY29uZnVzaW9uIHRoYXQgY291bGQgYWZmZWN0IHdhc3RlIG1hbmFnZW1lbnQuPC9wPgo8YSBocmVmPSJodHBzOi8vc2NyYXBhZC5jb20vZW4vYmxvZy9pZGVudGlmaWNhdGlvbi1hbmQtY29kZS1vZi1wbGFzdGljcy8iIGRhdGEtdD0ibGluayJkYXRhLWlkPSJodHRwczovL3NjcmFwYWQuY20vZW4vYmxvZy9pZGVudGlpY2F0aW9uLWFuZC1jb2RlLW9mLXBsYXN0aWNzLyI+dHlwZW9mIDwvYT48c3Jvbmc+dDwvc3Ryb25nPjxwPlRoZSBtb3N0IHdlbGwta25vd24gcmVjeWNsaW5nIHN5bWJvbCBpcyB0aGUgb25lIHdpdGggPHN0cm9uZz50aHJlZSBhcnJvd3MgZm9ybWluZyBhIHRyaWFuZ2xlPC9zdHJvbmc+LiBJdHMgbWFpbiBmdW5jdGlvbiBpcyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYWNrYWdlIGNhbiBiZSByZWN5Y2xlZCwgYnV0IGl0IG9ubHkgc3VnZ2VzdHMgdGhlIHBvc3NpYmlsaXR5LCBub3QgYW4gYWJzb2x1dGUgZ3VhcmFudGVlIHRoYXQgdGhlIG1hdGVyaWFsIHdpbGwgYmUgcmVjeWNsZWQgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIE9mdGVuLCB0aGlzIHRyaWFuZ2xlIGluY2x1ZGVzIGEgbnVtYmVyIG9yIGxldHRlcnMgaW5zaWRlLCBpZGVudGlmeWluZyB0aGUgdHlwZSBvZiBtYXRlcmlhbCwgc3VjaCBhcyBQRVQsIEhEUEUsIFBQLCBvciB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGZvciBwYXBlciwgY2FyZGJvYXJkLCBhbmQgb3RoZXIgbWF0ZXJpYWxzLjwvcD4KPHA+PHN0cm9uZz5QbGFzdGljPC9zdHJvbmc+PGJyPklkZW50aWZpZWQgd2l0aCB0aGUgTW9iaXVzIHRyaWFuZ2xlIGFsb25nIHdpdGggYSByZXNpbiBudW1iZXIuIFNwZWNpZmllcyB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9zY3JhcGFkLmNvbS9lbi9ibG9nL2lkZW50aWZpY2F0aW9uLWFuZC1jb2RlLW9mLXBsYXN0aWNzLyIgZGF0YS10eXBlPSJsaW5rIiBkYXRhLWlkPSJodHRwczovL3NjcmFwYWQuY29tL2VuL2Jsb2cvaWRlbnRpZmljYXRpb24tYW5kLWNvZGUtb2YtcGxhc3RpY3MvIj50eXBlIG9mIHBsYXN0aWM8L2E+IGFuZCBpdHMgcmVjeWNsYWJpbGl0eS48L3A+Cjx0cm9uZz5zPC9zdHJvbmc+ZG9jdW1lbnRzbHVnPHA+QXBwbHlpbmcgdGhlc2UgdGlwcyBhbmQgPHN0cm9uZz5zdXN0YWluYWJsZSBwcmFjdGljZXMgZW5zdXJlcyBiZXR0ZXIgcmVzb3VyY2U8L3N0cm9uZz4gdXNlIGFuZCByZWluZm9yY2VzIHRoZSBlbnZpcm9ubWVudGFsIGJlbmVmaXRzIG9mIHJlY3ljbGluZyBwYWNrYWdpbmcgc3ltYm9scy48L3A+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL3d3dy5ncmVlbnVzby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMTA0MjgtNC0xMDI0eDEwMjQuanBnIiBhbHQ9IkRpc2NvdmVyIHRoZSBtZWFuaW5nIG9mIHJlY3ljbGluZyBzeW1ib2xzIG9uIHBhY2thZ2luZyBhbmQgbGVhcm4gaG93IHRvIHNvcnQgd2FzdGUgY29ycmVjdGx5IHRvIHByb3RlY3QgdGhlIGVudmlyb25tZW50LiIgY2xhc3M9IndwLWltYWdlLTM0NzM3Ii8+PC9maWd1cmU+CgUHCAQIBggFiwEIBwgHCAYIDggOCAsIBkgBBggEUwAXUgAZGxdcAB0PFxARGR0SERcWFxobGBsJCAoIBAgGCAcPBAoHCwUHBQeLAQUIBwQKB5UEB0sACAcECgcwBQsIBwQKB40FB0sACAcECgcqBQsIBwQKBzUBHrUFB0sACAcECgeUBAdLAAgHBAoHPQULCAcECgeEBwdLAAgHBAoHsQMHSwAIBwQKBzUFCwgHBAoHoAQHSwAIBwQKBx0FCwgHBAoHsQUHSwAIBwQKB5MCB0sACAcECgcGCwgHBAoHNQsIBwQKBzYLCAcECgczCwgHBAoHKgsIBwQKBywLCAcECgcmCwgHBAoHPAsIBwQKB7EBB0sACAcECgcGCwgHBAoHJAsIBwQKByQLCAcECgcXCwgHBAoHiwEHSwAIBwQKBzEFCwgHBAoHqQEBA0ECBxcHSwAIBwQKB4sDB0sACAcECge5AQdLAAgHBAoHrwIHSwAIBwQKBxYFCwgHBAoHvQIHSwAIBwQKB44EB0sACAcECgetAgdLAAgHBAoHFQULCAcECgcGCwgHBAoHqAELCAcECgelAQsIBwQKB6MCCwgHBAoHvgMHSwAIBwQKBzEFCwgHBAoHowIHSwAIBwQKBy0FCwgHBAoHgQYHSwAIBwQKB4kGB0sACAcECgczBQsIBwQKB4EFB0sACAcECgecBAdLAAgHBAoHOQULCAcECgceFboFB0sACAcECge9BQdLAAgHBAoHjwQHSwAIBwQKBzMFCwgHBAoHmwMHSwAIBwQKBxkFCwgHBAoHmAEHSwAIBwQKBwYLCAcECgcrCwgHBAoHOAsIBwQKBzELCAcECgeMAQsIBwQKB5QBB0sACAcECgcaBQsIBwQKBzoHSwAIBwQKBwYLCAcECgepAQsIBwQKB78BCwgHBAoHsAELCAcECgcoBQsIBwQKBwYLCAcECgePAQsIBwQKB7ABCwgHBAoHqQELCAcECgerAQsIBwQKBzgFCwgHBAoHBgsIBwQKB5cBCwgHBAoHlgELCAcECgelAQsIBwQKB4oCCwgHBAoHvQELCAcECgcYASyOAQdLAAgHBAoHNgULCAcECgeTAwdLAAgHBAoHKwULCAcECgcGCwgHBAoHkAMLCAcECge6AgsIBwQKB4ABCwgHBAoHBgsIBwQKBxoLCAcECgcaCwgHBAoHNwsIBwQKBwYLCAcECge+AQsIBwQKB58CCwgHBAoHGQULCAcECgcGCwgHBAoHOwsIBwQKB5ABCwgHBAoHlAELCAcECgcmBQsIBwQKBwYLCAcECgeAAQsIBwQKB40BCwgHBAoHpQELCAcECgesAQsIBwQKB4kDB0sACAcECkcASwAHCwIIBwQKAwcLvQECBAMID6cNtzOlDIJOokoYFh4IBwQKRwBLALEDBIsBqgoKhgEHGhAjAwQCBgmiB4IFAQcJCASsAp0EFgEDAAABAAAAAQgAGgECAAcBAQCOBwHEA0IBAQBBAAACQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAJkEBm9cBQYAEAkEAkQeVBpcCtQabAoMCgDdBBp0EQQSaBEEAA0EAAf8IAH0BfQF9s50EdwRvcGVudwRvcGVueXcAdwhzdGFuZGFyZHcHZGVmYXVsdHcAdwdkZWZhdWx0dwdkZWZhdWx0dwdkZWZhdWx0dwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcHZGVmYXVsdHcHZGVmYXVsdHYDB2Rlc2t0b3B2DBBiYWNrZ3JvdW5kLWNvbG9ydxl2YXIoLS1hc3QtZ2xvYmFsLWNvbG9yLTQpEGJhY2tncm91bmQtaW1hZ2V3ABFiYWNrZ3JvdW5kLXJlcGVhdHcGcmVwZWF0E2JhY2tncm91bmQtcG9zaXRpb253DWNlbnRlciBjZW50ZXIPYmFja2dyb3VuZC1zaXpldwRhdXRvFWJhY2tncm91bmQtYXR0YWNobWVudHcGc2Nyb2xsD2JhY2tncm91bmQtdHlwZXcAEGJhY2tncm91bmQtbWVkaWF3AAxvdmVybGF5LXR5cGV3AA1vdmVybGF5LWNvbG9ydwAPb3ZlcmxheS1vcGFjaXR5dwAQb3ZlcmxheS1ncmFkaWVudHcABnRhYmxldHYMEGJhY2tncm91bmQtY29sb3J3ABBiYWNrZ3JvdW5kLWltYWdldwARYmFja2dyb3VuZC1yZXBlYXR3BnJlcGVhdBNiYWNrZ3JvdW5kLXBvc2l0aW9udw1jZW50ZXIgY2VudGVyD2JhY2tncm91bmQtc2l6ZXcEYXV0bxViYWNrZ3JvdW5kLWF0dGFjaG1lbnR3BnNjcm9sbA9iYWNrZ3JvdW5kLXR5cGV3ABBiYWNrZ3JvdW5kLW1lZGlhdwAMb3ZlcmxheS10eXBldwANb3ZlcmxheS1jb2xvcncAD292ZXJsYXktb3BhY2l0eXcAEG92ZXJsYXktZ3JhZGllbnR3AAZtb2JpbGV2DBBiYWNrZ3JvdW5kLWNvbG9ydwAQYmFja2dyb3VuZC1pbWFnZXcAEWJhY2tncm91bmQtcmVwZWF0dwZyZXBlYXQTYmFja2dyb3VuZC1wb3NpdGlvbncNY2VudGVyIGNlbnRlcg9iYWNrZ3JvdW5kLXNpemV3BGF1dG8VYmFja2dyb3VuZC1hdHRhY2htZW50dwZzY3JvbGwPYmFja2dyb3VuZC10eXBldwAQYmFja2dyb3VuZC1tZWRpYXcADG92ZXJsYXktdHlwZXcADW92ZXJsYXktY29sb3J3AA9vdmVybGF5LW9wYWNpdHl3ABBvdmVybGF5LWdyYWRpZW50dwB2AwdkZXNrdG9wdgwQYmFja2dyb3VuZC1jb2xvcncZdmFyKC0tYXN0LWdsb2JhbC1jb2xvci01KRBiYWNrZ3JvdW5kLWltYWdldwARYmFja2dyb3VuZC1yZXBlYXR3BnJlcGVhdBNiYWNrZ3JvdW5kLXBvc2l0aW9udw1jZW50ZXIgY2VudGVyD2JhY2tncm91bmQtc2l6ZXcEYXV0bxViYWNrZ3JvdW5kLWF0dGFjaG1lbnR3BnNjcm9sbA9iYWNrZ3JvdW5kLXR5cGV3ABBiYWNrZ3JvdW5kLW1lZGlhdwAMb3ZlcmxheS10eXBldwANb3ZlcmxheS1jb2xvcncAD292ZXJsYXktb3BhY2l0eXcAEG92ZXJsYXktZ3JhZGllbnR3AAZ0YWJsZXR2DBBiYWNrZ3JvdW5kLWNvbG9ydxl2YXIoLS1hc3QtZ2xvYmFsLWNvbG9yLTUpEGJhY2tncm91bmQtaW1hZ2V3ABFiYWNrZ3JvdW5kLXJlcGVhdHcGcmVwZWF0E2JhY2tncm91bmQtcG9zaXRpb253DWNlbnRlciBjZW50ZXIPYmFja2dyb3VuZC1zaXpldwRhdXRvFWJhY2tncm91bmQtYXR0YWNobWVudHcGc2Nyb2xsD2JhY2tncm91bmQtdHlwZXcAEGJhY2tncm91bmQtbWVkaWF3AAxvdmVybGF5LXR5cGV3AA1vdmVybGF5LWNvbG9ydwAPb3ZlcmxheS1vcGFjaXR5dwAQb3ZlcmxheS1ncmFkaWVudHcABm1vYmlsZXYMEGJhY2tncm91bmQtY29sb3J3GXZhcigtLWFzdC1nbG9iYWwtY29sb3ItNSkQYmFja2dyb3VuZC1pbWFnZXcAEWJhY2tncm91bmQtcmVwZWF0dwZyZXBlYXQTYmFja2dyb3VuZC1wb3NpdGlvbncNY2VudGVyIGNlbnRlcg9iYWNrZ3JvdW5kLXNpemV3BGF1dG8VYmFja2dyb3VuZC1hdHRhY2htZW50dwZzY3JvbGwPYmFja2dyb3VuZC10eXBldwAQYmFja2dyb3VuZC1tZWRpYXcADG92ZXJsYXktdHlwZXcADW92ZXJsYXktY29sb3J3AA9vdmVybGF5LW9wYWNpdHl3ABBvdmVybGF5LWdyYWRpZW50dwB3AHUCfSd9rQF1AHckMGFlNjNiNGMtZmY5Mi00NzM3LWIxMTItODg3NTQ4YTU3YWVieHeGbTxoMT5EaXNjb3ZlciB0aGUgTWVhbmluZyBvZiBSZWN5Y2xpbmcgU3ltYm9scyBvbiBQYWNrYWdpbmcgYW5kIFRoZWlyIEltcG9ydGFuY2U8L2gxPgo8cD5UaGUgcGFja2FnaW5nIHdlIHVzZSBkYWlseSBjYXJyaWVzIHJlY3ljbGluZyBzeW1ib2xzIHRoYXQgd2Ugb2Z0ZW4gb3Zlcmxvb2suIEtub3dpbmcgdGhlaXIgbWVhbmluZyBoZWxwcyB1cyBkaXNwb3NlIG9mIGVhY2ggbWF0ZXJpYWwgaW4gdGhlIGNvcnJlY3QgYmluLCByZWR1Y2UgZXJyb3JzLCBhbmQgY2FyZSBmb3IgdGhlIGVudmlyb25tZW50LiBUaGlzIGd1aWRlIHdpbGwgaGVscCB5b3UgaWRlbnRpZnkgdGhlc2Ugc3ltYm9scyBhbmQgdXNlIHRoZW0gdG8gcmVjeWNsZSBlYXNpbHkuPC9wPgo8aDI+V2hhdCBkbyB0aGUgcmVjeWNsaW5nIHN5bWJvbHMgb24gcGFja2FnaW5nIG1lYW4\/PC9oMj4KPHA+VGhlIHByZXNlbmNlIG9mIHJlY3ljbGluZyBzeW1ib2xzIG9uIHBhY2thZ2luZyBvZnRlbiBnZW5lcmF0ZXMgZnJlcXVlbnQgcXVlc3Rpb25zOiBEb2VzIGl0IG1lYW4gdGhlIHBhY2thZ2UgaXMgYWx3YXlzIHJlY3ljbGFibGU\/IFdoaWNoIGJpbiBzaG91bGQgaXQgZ28gaW50bz8gRG8gYWxsIGNpdGllcyB1c2UgdGhlIHNhbWUgc3ltYm9scz8gVGhlc2UgcXVlc3Rpb25zIGFyZSBjb21tb24gYW5kIGhpZ2hsaWdodCB0aGUgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzaWduYWxzIHRoYXQgYXBwZWFyIG9uIGJvdHRsZXMsIGNhcnRvbnMsIGNhbnMsIGFuZCBib3hlcyB3ZSB1c2UgZGFpbHkuPC9wPgo8aDM+QmFzaWMgUmVjeWNsaW5nIFN5bWJvbHMgYW5kIFRoZWlyIEZ1bmN0aW9uPC9oMz4KPHA+VGhlIG1vc3Qgd2VsbC1rbm93biByZWN5Y2xpbmcgc3ltYm9sIGlzIHRoZSBvbmUgd2l0aCB0aHJlZSBhcnJvd3MgZm9ybWluZyBhIHRyaWFuZ2xlLiBJdHMgbWFpbiBmdW5jdGlvbiBpcyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYWNrYWdlIGNhbiBiZSByZWN5Y2xlZCwgYnV0IGl0IG9ubHkgc3VnZ2VzdHMgdGhlIHBvc3NpYmlsaXR5LCBub3QgYW4gYWJzb2x1dGUgZ3VhcmFudGVlIHRoYXQgdGhlIG1hdGVyaWFsIHdpbGwgYmUgcmVjeWNsZWQgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIE9mdGVuLCB0aGlzIHRyaWFuZ2xlIGluY2x1ZGVzIGEgbnVtYmVyIG9yIGxldHRlcnMgaW5zaWRlLCBpZGVudGlmeWluZyB0aGUgdHlwZSBvZiBtYXRlcmlhbCwgc3VjaCBhcyBQRVQsIEhEUEUsIFBQLCBvciB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGZvciBwYXBlciwgY2FyZGJvYXJkLCBhbmQgb3RoZXIgbWF0ZXJpYWxzLjwvcD4KPHA+T3RoZXIgY29tbW9uIHN5bWJvbHMgb24gcGFja2FnaW5nIGFyZSBwaWN0b2dyYW1zIG9mIGNvbG9yZWQgY29udGFpbmVycywgd2hpY2ggZGlyZWN0bHkgaW5kaWNhdGUgd2hpY2ggZnJhY3Rpb24gdGhlIHdhc3RlIGJlbG9uZ3MgdG86IHllbGxvdyBmb3IgcGxhc3RpY3MgYW5kIGNhbnMsIGJsdWUgZm9yIHBhcGVyIGFuZCBjYXJkYm9hcmQsIGdyZWVuIGZvciBnbGFzcy4gVGhlc2UgaWNvbnMgaGVscCBjb25zdW1lcnMgY29ycmVjdGx5IHNlcGFyYXRlIHdhc3RlIGF0IHRoZSBzb3VyY2UuPC9wPgo8aDM+SW1wb3J0YW5jZSBvZiBSZWNvZ25pemluZyBTeW1ib2xzIGZvciBQcm9wZXIgV2FzdGUgTWFuYWdlbWVudDwvaDM+CjxwPlVuZGVyc3RhbmRpbmcgdGhlIG1lYW5pbmcgb2YgdGhlc2Ugc3ltYm9scyBpcyBrZXkgdG8gYXZvaWRpbmcgbWlzdGFrZXMgaW4gbWF0ZXJpYWwgc2VwYXJhdGlvbi4gQSBwYWNrYWdlIHdpdGggYSBtaXNpbnRlcnByZXRlZCBzeW1ib2wgY2FuIGVuZCB1cCBpbiB0aGUgd3JvbmcgY29udGFpbmVyLCBjb21wbGljYXRpbmcgdGhlIHJlY3ljbGluZyBwcm9jZXNzIGFuZCBjb250YW1pbmF0aW5nIG90aGVyIGZyYWN0aW9ucy4gVGhlcmVmb3JlLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHN5bWJvbHMgYmVmb3JlIGRpc3Bvc2luZyBvZiBhIHBhY2thZ2UgYWxsb3dzIHVzIHRvIGFjdCByZXNwb25zaWJseSBhbmQgZWZmaWNpZW50bHksIGZhY2lsaXRhdGluZyByZWN5Y2xpbmcgaW4gcGxhbnRzIGFuZCBoZWxwaW5nIHRvIHJlZHVjZSB0aGUgdm9sdW1lIG9mIHdhc3RlIGRlc3RpbmVkIGZvciBsYW5kZmlsbHMuPC9wPgo8cD5JbiBzdW1tYXJ5LCByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgZG8gbW9yZSB0aGFuIGluZGljYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiByZWN5Y2xpbmc7IHRoZXkgYXJlIGFuIGVzc2VudGlhbCB0b29sIGZvciBwcm9wZXIgd2FzdGUgbWFuYWdlbWVudC4gQ29ycmVjdCBpbnRlcnByZXRhdGlvbiBoZWxwcyBjbG9zZSB0aGUgbG9vcCBhbmQgcHJvbW90ZXMgc3VzdGFpbmFibGUgaGFiaXRzIGluIGRhaWx5IGxpZmUuPC9wPgo8aDI+TWFpbiBSZWN5Y2xpbmcgU3ltYm9scyBvbiBQYWNrYWdpbmcgYW5kIFRoZWlyIE1lYW5pbmc8L2gyPgo8cD5SZWNvZ25pemluZyByZWN5Y2xpbmcgc3ltYm9scyBpcyBjcnVjaWFsIGZvciBpZGVudGlmeWluZyB0aGUgbWF0ZXJpYWwgb2YgdGhlIHBhY2thZ2luZyBhbmQga25vd2luZyB3aGljaCBjb250YWluZXIgaXQgc2hvdWxkIGJlIHBsYWNlZCBpbi4gVGhlc2Ugc3ltYm9scyBwcm92aWRlIHF1aWNrIGluZm9ybWF0aW9uIGFib3V0IGNvbXBvc2l0aW9uLCByZWN5Y2xhYmlsaXR5LCBhbmQgb3RoZXIgaW1wb3J0YW50IGNoYXJhY3RlcmlzdGljcyB0aGF0IGZvc3RlciBlZmZpY2llbnQgd2FzdGUgbWFuYWdlbWVudC48L3A+CjxoMz5Nb3N0IENvbW1vbiBSZWN5Y2xpbmcgU3ltYm9sczwvaDM+CjxwPjxzdHJvbmc+TW9iaXVzIFRyaWFuZ2xlICjimbvvuI8pPC9zdHJvbmc+PGJyIC8+VGhpcyBpcyB0aGUgaW50ZXJuYXRpb25hbCByZWN5Y2xpbmcgc3ltYm9sLCBjb25zaXN0aW5nIG9mIHRocmVlIGNoYXNpbmcgYXJyb3dzIGZvcm1pbmcgYSB0cmlhbmdsZS4gSXQgaW5kaWNhdGVzIHRoYXQgdGhlIHByb2R1Y3Qgb3IgbWF0ZXJpYWwgaXMgcmVjeWNsYWJsZS4gSXQgc29tZXRpbWVzIGluY29ycG9yYXRlcyBhIHBlcmNlbnRhZ2UgaW5zaWRlIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiByZWN5Y2xlZCBtYXRlcmlhbC4gSWYgaXQgaGFzIGEgbnVtYmVyIG9yIGludGVybmFsIGluaXRpYWxzLCBpdCBpbmRpY2F0ZXMgdGhlIHJlc2luIGNvZGUgZm9yIHBsYXN0aWNzLjwvcD4KPHA+PHN0cm9uZz5SZXNpbiBDb2RlcyAoUGxhc3RpY3MpPC9zdHJvbmc+PGJyIC8+SW5zaWRlIHRoZSByZWN5Y2xpbmcgdHJpYW5nbGUsIHBsYXN0aWMgcGFja2FnZXMgc2hvdyBhIG51bWJlciBmcm9tIDEgdG8gNyBhbmQgc29tZXRpbWVzIGFuIGFiYnJldmlhdGlvbjo8L3A+Cjx1bD4KPGxpPjEgKFBFVCBvciBQRVRFKTogVXNlZCBpbiB3YXRlciBvciBzb2Z0IGRyaW5rIGJvdHRsZXMuPC9saT4KPGxpPjIgKEhEUEUpOiBNaWxrIGNvbnRhaW5lcnMsIGRldGVyZ2VudCBib3R0bGVzLCBvciBiYWdzLjwvbGk+CjxsaT4zIChQVkMpOiBEZXRlcmdlbnQgYm90dGxlcyBhbmQgc29tZSBmb29kIHBhY2thZ2luZy48L2xpPgo8bGk+NCAoTERQRSk6IEZsZXhpYmxlIHBsYXN0aWMgYmFncyBhbmQgZmlsbXMuPC9saT4KPGxpPjUgKFBQKTogTGlkcywgc3RyYXdzLCBhbmQgeW9ndXJ0IGNvbnRhaW5lcnMuPC9saT4KPGxpPjYgKFBTKTogRGlzcG9zYWJsZSBjdXBzIG9yIG1lYXQgdHJheXMuPC9saT4KPGxpPjcgKE90aGVyKTogUGxhc3RpY3Mgbm90IGluY2x1ZGVkIGluIHRoZSBwcmV2aW91cyBjYXRlZ29yaWVzLjwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+Q29udGFpbmVyIFBpY3RvZ3JhbXM8L3N0cm9uZz48YnIgLz5UaGVzZSBhcmUgaWNvbnMgcmVwcmVzZW50aW5nIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgZm9yIGVhY2ggcGFja2FnZTo8L3A+Cjx1bD4KPGxpPlllbGxvdyBjb250YWluZXI6IFBsYXN0aWNzIGFuZCBjYW5zLjwvbGk+CjxsaT5CbHVlIGNvbnRhaW5lcjogUGFwZXIgYW5kIGNhcmRib2FyZC48L2xpPgo8bGk+R3JlZW4gY29udGFpbmVyOiBHbGFzcy48L2xpPgo8L3VsPgo8cD5Tb21lIHBhY2thZ2VzIGRpcmVjdGx5IHNob3cgdGhlIHBpY3RvZ3JhbSBvciBhIHN0cmlwIG9mIHRoZSBvZmZpY2lhbCBjb2xvci48L3A+CjxoMz5EaWZmZXJlbmNlcyBCZXR3ZWVuIFN5bWJvbHMgQWNjb3JkaW5nIHRvIE1hdGVyaWFsPC9oMz4KPHA+PHN0cm9uZz5QbGFzdGljPC9zdHJvbmc+PGJyIC8+SWRlbnRpZmllZCB3aXRoIHRoZSBNb2JpdXMgdHJpYW5nbGUgYWxvbmcgd2l0aCBhIHJlc2luIG51bWJlci4gU3BlY2lmaWVzIHRoZSB0eXBlIG9mIHBsYXN0aWMgYW5kIGl0cyByZWN5Y2xhYmlsaXR5LjwvcD4KPHA+PHN0cm9uZz5DYXJkYm9hcmQgYW5kIFBhcGVyPC9zdHJvbmc+PGJyIC8+Q2FycnkgdGhlIHNpbXBsZSByZWN5Y2xpbmcgc3ltYm9sLCBzb21ldGltZXMgYWNjb21wYW5pZWQgYnkgZm9sZGVkIHBhcGVyIHBpY3RvZ3JhbXMgb3IgdGhlIGJsdWUgY29udGFpbmVyIGljb24uIEFpbSB0byByZWN5Y2xlIHdhc3RlIGluIHRoZSBjb3JyZXNwb25kaW5nIGZyYWN0aW9uLjwvcD4KPHA+PHN0cm9uZz5HbGFzczwvc3Ryb25nPjxiciAvPlVzdWFsbHkgbWFya2VkIHdpdGggdGhlIGljb24gb2YgYSBnbGFzcyBjb250YWluZXIgYW5kIGEgY2lyY3VsYXIgYXJyb3csIG9yIHRoZSBncmVlbiBwaWN0b2dyYW0uPC9wPgo8cD48c3Ryb25nPk1ldGFsPC9zdHJvbmc+PGJyIC8+Q2FucyBhbmQgbWV0YWwgcGFja2FnaW5nIG1heSBkaXNwbGF5IGEgbWFnbmV0IHN5bWJvbCwgaW5kaWNhdGluZyB0aGVpciByZWN5Y2xhYmlsaXR5IHRocm91Z2ggbWFnbmV0aWMgc2VwYXJhdGlvbiwgb3Igc2ltcGx5IHRoZSB0cmFkaXRpb25hbCB0cmlhbmdsZS48L3A+CjxoMz5PdGhlciBSZWxldmFudCBTeW1ib2xzPC9oMz4KPHA+PHN0cm9uZz5CUEEgRnJlZTwvc3Ryb25nPjxiciAvPkluZGljYXRlcyB0aGUgYWJzZW5jZSBvZiBiaXNwaGVub2wgQSwgYSBwb3RlbnRpYWxseSBoYXJtZnVsIGNoZW1pY2FsIGluIHBsYXN0aWNzLiBJdCBpcyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byByZWN5Y2xpbmcgYnV0IHRvIHRoZSBmb29kIHNhZmV0eSBvZiB0aGUgcGFja2FnZS48L3A+CjxwPjxzdHJvbmc+Q29tcG9zdGFibGU8L3N0cm9uZz48YnIgLz5UaGUgY29tcG9zdGFibGUgc3ltYm9sIHR5cGljYWxseSBkaXNwbGF5cyBhIGxlYWYgb3Igc3BpcmFsLCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBhY2thZ2UgY2FuIGRlY29tcG9zZSBhbG9uZ3NpZGUgb3JnYW5pYyB3YXN0ZSB1bmRlciBpbmR1c3RyaWFsIGNvbXBvc3RpbmcgY29uZGl0aW9ucy4gSXQgaXMgY3J1Y2lhbCBub3QgdG8gbWl4IHRoZXNlIHBhY2thZ2VzIHdpdGggY29udmVudGlvbmFsIHBsYXN0aWMgd2FzdGUuPC9wPgo8cD48c3Ryb25nPlJldXNhYmxlPC9zdHJvbmc+PGJyIC8+QSBzeW1ib2wgb2YgdHdvIGNpcmN1bGFyIGFycm93cyBvciB0aGUgdGV4dCByZXVzYWJsZSBpZGVudGlmaWVzIHBhY2thZ2VzIGRlc2lnbmVkIHRvIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMgYmVmb3JlIGVudGVyaW5nIHRoZSByZWN5Y2xpbmcgY3ljbGUuPC9wPgo8aDM+Q29tcGxlbWVudGFyeSBTeW1ib2xzPC9oMz4KPHVsPgo8bGk+PHN0cm9uZz5Gb29kIENvbnRhY3QgU2FmZTwvc3Ryb25nPjogQSBjcm9zc2VkIGdsYXNzIGFuZCBmb3JrIGluZGljYXRlIHRoYXQgdGhlIHBhY2thZ2UgaXMgc2FmZSBmb3IgZm9vZC48L2xpPgo8bGk+PHN0cm9uZz5EaXNwb3NlIGF0IENvbGxlY3Rpb24gUG9pbnQ8L3N0cm9uZz46IEZvciBwcm9kdWN0cyB0aGF0IHNob3VsZCBub3QgZ28gaW4gZG9tZXN0aWMgY29udGFpbmVycy48L2xpPgo8bGk+PHN0cm9uZz5HcmVlbiBEb3Q8L3N0cm9uZz46IEluZGljYXRlcyB0aGF0IHRoZSBtYW51ZmFjdHVyZXIgY29tcGxpZXMgd2l0aCBwYWNrYWdpbmcgd2FzdGUgbWFuYWdlbWVudCwgdGhvdWdoIGl0IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSByZWN5Y2xhYmlsaXR5IG9mIHRoZSBwcm9kdWN0LjwvbGk+CjwvdWw+CjxwPkNvcnJlY3RseSBpbnRlcnByZXRpbmcgdGhlc2Ugc3ltYm9scyBjb250cmlidXRlcyB0byBwcmVjaXNlIHNlbGVjdGl2ZSBzb3J0aW5nLCBmYWNpbGl0YXRlcyBtYXRlcmlhbCByZWN5Y2xpbmcsIGFuZCBzdXBwb3J0cyB0aGUgY2lyY3VsYXIgZWNvbm9teSBtb2RlbC4gVGh1cywgZWFjaCBwYWNrYWdlJ3MgbGFiZWwgYmVjb21lcyBhIGtleSB0b29sIGZvciBwYWNrYWdpbmcgcmVjeWNsaW5nIGFuZCByZXNwZWN0IGZvciB0aGUgZW52aXJvbm1lbnQuPC9wPgo8aDI+UmVndWxhdGlvbiBhbmQgUmVxdWlyZW1lbnRzIGZvciBQYWNrYWdpbmcgTWFya2luZzwvaDI+CjxwPlRoZSByZWd1bGF0aW9ucyBvbiBwYWNrYWdpbmcgbWFya2luZyBlc3RhYmxpc2ggaG93IG1hdGVyaWFscyBzaG91bGQgYmUgaWRlbnRpZmllZCBhbmQgd2hhdCBtYW5kYXRvcnkgaW5mb3JtYXRpb24gbXVzdCBhcHBlYXIgdG8gZmFjaWxpdGF0ZSBwcm9wZXIgd2FzdGUgbWFuYWdlbWVudC48L3A+CjxoMz5MZWdpc2xhdGl2ZSBGcmFtZXdvcms6IFJveWFsIERlY3JlZSAxMDU1LzIwMjI8L2gzPgo8cD5Sb3lhbCBEZWNyZWUgMTA1NS8yMDIyIHJlZ3VsYXRlcyBwYWNrYWdpbmcgYW5kIHBhY2thZ2luZyB3YXN0ZSBtYW5hZ2VtZW50IGluIFNwYWluLiBJdCBpbXBvc2VzIHRoZSBvYmxpZ2F0aW9uIHRvIG1hcmsgcGFja2FnZXMgd2l0aCBzeW1ib2xzIHRoYXQgYWxsb3cgdXNlcnMgdG8gaWRlbnRpZnkgdGhlIG1hdGVyaWFsIGFuZCB0aGUgYXBwcm9wcmlhdGUgY29udGFpbmVyLiBUaGlzIGxlZ2lzbGF0aW9uIHNldHMgaG9tb2dlbmVvdXMgY3JpdGVyaWEgZm9yIHRoZSBlbnRpcmUgdGVycml0b3J5LCBhaW1pbmcgdG8gaW5jcmVhc2UgcmVjeWNsaW5nIHJhdGVzLCBpbXByb3ZlIHRyYWNlYWJpbGl0eSwgYW5kIHJlZHVjZSB0aGUgZW52aXJvbm1lbnRhbCBpbXBhY3Qgb2Ygd2FzdGUuPC9wPgo8cD5UaGUgUm95YWwgRGVjcmVlIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBtYXJraW5nIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkLCBkZXBlbmRpbmcgb24gdGhlIG1hdGVyaWFsLiBQbGFzdGljLCBjYXJkYm9hcmQsIHBhcGVyLCBtZXRhbCwgYW5kIGdsYXNzIG11c3QgYmUgY29ycmVjdGx5IGlkZW50aWZpZWQsIGFuZCBtdWx0aWxheWVyIHBhY2thZ2VzIHJlcXVpcmUgYSBzcGVjaWZpYyBzeW1ib2wgcmVmbGVjdGluZyB0aGVpciBjb21wb3NpdGlvbi4gQWRkaXRpb25hbGx5LCBpdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gZG9tZXN0aWMsIGNvbW1lcmNpYWwsIGFuZCBpbmR1c3RyaWFsIHBhY2thZ2luZywgcmVndWxhdGluZyB0aGUgbWFya2luZyB0aGF0IGNvcnJlc3BvbmRzIHRvIGVhY2ggY2FzZS48L3A+CjxoMz5EaWZmZXJlbmNlcyBCZXR3ZWVuIE1hbmRhdG9yeSBhbmQgVm9sdW50YXJ5IE1hcmtpbmc8L2gzPgo8cD5Ob3QgYWxsIHN5bWJvbHMgb24gcGFja2FnaW5nIGFyZSBtYW5kYXRvcnkgYnkgbGF3LiBUaGUgbWFuZGF0b3J5IG1hcmtpbmcgaW5jbHVkZXMgdGhlIGNvZGVzIGlkZW50aWZ5aW5nIHRoZSBwYWNrYWdpbmcgbWF0ZXJpYWwsIHRoZSBwaWN0b2dyYW1zIGZvciBjb3JyZWN0IHNlcGFyYXRpb24sIGFuZCBpbiBzb21lIGNhc2VzLCBzeW1ib2xzIGZvciByZXVzYWJsZSBvciBjb21wb3N0YWJsZSBwYWNrYWdpbmcsIHdoZXJlIGFwcGxpY2FibGUuIFRoZSBvYmplY3RpdmUgaXMgdG8gZW5zdXJlIHRoYXQgY29uc3VtZXJzIGNhbiBwcm9wZXJseSBzZXBhcmF0ZSB3YXN0ZS48L3A+CjxwPlZvbHVudGFyeSBtYXJraW5nIGluY2x1ZGVzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gbm90IHJlcXVpcmVkIGJ5IGxhdywgc3VjaCBhcyB0aGUgYW1vdW50IG9mIHJlY3ljbGVkIG1hdGVyaWFsLCB0aGUgY2FyYm9uIGZvb3RwcmludCwgb3IgY2VydGFpbiBzdXN0YWluYWJpbGl0eSBzeW1ib2xzLiBUaGVzZSBjYW4gcHJvdmlkZSBhZGRlZCB2YWx1ZSBmb3IgY29uc3VtZXJzIGJ1dCBkbyBub3QgcmVwbGFjZSB0aGUgbWFuZGF0b3J5IGxhYmVsaW5nIHJlcXVpcmVkIGJ5IHRoZSBSb3lhbCBEZWNyZWUuPC9wPgo8aDM+UmVxdWlyZW1lbnRzIGZvciBDb21wYW5pZXMgYW5kIENpdGl6ZW5zJyBSZXNwb25zaWJpbGl0aWVzPC9oMz4KPHA+PHN0cm9uZz5Db21wYW5pZXM8L3N0cm9uZz48YnIgLz5Db21wYW5pZXMgcmVzcG9uc2libGUgZm9yIG1hcmtldGluZyBwYWNrYWdlcyBtdXN0IGVuc3VyZSBhbGwgdGhlaXIgcGFja2FnaW5nIGNvbXBsaWVzIHdpdGggbGVnYWwgbWFya2luZy4gVGhpcyBpbmNsdWRlcyBwbGFjaW5nIHRoZSByZWN5Y2xpbmcgc3ltYm9scyBhbmQgbWF0ZXJpYWwgaWRlbnRpZmljYXRpb24gY29kZXMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSB0eXBlIG9mIHdhc3RlLCB0eXBvZ3JhcGh5LCBhbmQgdmlzaWJpbGl0eSBzZXQgYnkgbGVnaXNsYXRpb24uIFRoZXkgbXVzdCBhbHNvIGVuc3VyZSB0aGUgaW5mb3JtYXRpb24gaXMgY2xlYXIgYW5kIGFjY2Vzc2libGUgdG8gY29uc3VtZXJzLCBhdm9pZGluZyBjb25mdXNpb24gdGhhdCBjb3VsZCBhZmZlY3Qgd2FzdGUgbWFuYWdlbWVudC48L3A+CjxwPjxzdHJvbmc+Q2l0aXplbnM8L3N0cm9uZz48YnIgLz5Db3JyZWN0IHNlcGFyYXRpb24gYW5kIGRpc3Bvc2FsIG9mIHBhY2thZ2luZyBmb2xsb3dpbmcgdGhlIHN5bWJvbHMgYW5kIHBpY3RvZ3JhbXMgYXJlIGEgc2hhcmVkIHJlc3BvbnNpYmlsaXR5LiBVc2VycyBtdXN0IGNvbnN1bHQgdGhlIHBpY3RvZ3JhbXMgYW5kIGluc3RydWN0aW9ucyBvbiBwYWNrYWdpbmcgdG8gY29tcGx5IHdpdGggY3VycmVudCByZWd1bGF0aW9ucyBhbmQgY29udHJpYnV0ZSB0byBlZmZlY3RpdmUgcmVjeWNsaW5nLiBDaXRpemVuIGludm9sdmVtZW50IGlzIGVzc2VudGlhbCB0byBtYWludGFpbiB0aGUgbWF0ZXJpYWwgY3ljbGUgYW5kIGFkdmFuY2UgdG93YXJkcyBhIGNpcmN1bGFyIGVjb25vbXkuPC9wPgo8cD5Db21wbGlhbmNlIHdpdGggdGhpcyByZWd1bGF0aW9uIGFuZCBjbGVhciBsYWJlbGluZyBhcmUgZXNzZW50aWFsIGZvciBhY2hpZXZpbmcgd2FzdGUgcmVkdWN0aW9uIGFuZCByZWN5Y2xpbmcgdGFyZ2V0cyBzZXQgYXQgRXVyb3BlYW4gYW5kIG5hdGlvbmFsIGxldmVscy4gUHJvcGVybHkgYXBwbHlpbmcgbWFya2luZyBvbiBwYWNrYWdpbmcgaGVscHMgcHJldmVudCBlcnJvcnMgaW4gc2VwYXJhdGlvbiBhbmQgb3B0aW1pemVzIHRoZSBlbnRpcmUgcmVjeWNsaW5nIHByb2Nlc3MuPC9wPgo8aDI+SG93IHRvIElkZW50aWZ5IGFuZCBDb3JyZWN0bHkgVXNlIFJlY3ljbGluZyBTeW1ib2xzPC9oMj4KPHA+S25vd2luZyBob3cgdG8gbG9jYXRlIGFuZCB1bmRlcnN0YW5kIHJlY3ljbGluZyBzeW1ib2xzIG9uIHBhY2thZ2luZyBpcyBlc3NlbnRpYWwgZm9yIHByb3BlciB3YXN0ZSBtYW5hZ2VtZW50LiBUaGVzZSBpY29ucyBwcm92aWRlIGRpcmVjdCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGFja2FnaW5nIG1hdGVyaWFsIGFuZCBpdHMgZGVzdGlueSBpbiB0aGUgcmVjeWNsaW5nIHByb2Nlc3MuPC9wPgo8aDM+V2hlcmUgdG8gRmluZCB0aGUgU3ltYm9sczwvaDM+CjxwPlJlY3ljbGluZyBzeW1ib2xzIGFyZSB1c3VhbGx5IHBsYWNlZCBpbiBkaXNjcmV0ZSBidXQgdmlzaWJsZSBsb2NhdGlvbnMgb24gdGhlIHBhY2thZ2luZzo8L3A+Cjx1bD4KPGxpPkJvdHRvbSBvciBiYWNrIG9mIGJvdHRsZXMsIGphcnMsIGFuZCBib3hlcy48L2xpPgo8bGk+TmVhciB0aGUgaW5ncmVkaWVudCBsYWJlbCBvciBpbiB0aGUgcHJvZHVjdCBkZXNjcmlwdGlvbi48L2xpPgo8bGk+T24gdGhlIHNlYWwgb3IgbGlkLCBlc3BlY2lhbGx5IG9uIHNtYWxsIHBhY2thZ2VzLjwvbGk+CjxsaT5PbiBiYWdzLCB0aGV5IG9mdGVuIGFwcGVhciBjbG9zZSB0byBhbiBlZGdlIG9yIGFsb25nc2lkZSB1c2FnZSBpbnN0cnVjdGlvbnMuPC9saT4KPC91bD4KPHA+Q29ycmVjdGx5IHJlYWRpbmcgdGhlIHN5bWJvbCBlbnN1cmVzIHlvdSBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGUgcGFja2FnZSBhZnRlciB1c2UuPC9wPgo8aDM+UHJvcGVyIE1hdGVyaWFsIFNlcGFyYXRpb248L2gzPgo8cD5Gb3IgY29ycmVjdCB3YXN0ZSBzZXBhcmF0aW9uLCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBzeW1ib2w6PC9wPgo8dWw+CjxsaT5JZGVudGlmeSB0aGUgbWF0ZXJpYWwgKHBsYXN0aWMsIGdsYXNzLCBtZXRhbCwgcGFwZXIsIGNhcmRib2FyZCkgYWNjb3JkaW5nIHRvIHRoZSBwaWN0b2dyYW0gb3IgcmVzaW4gY29kZS48L2xpPgo8bGk+RGVwb3NpdCBlYWNoIHdhc3RlIGluIGl0cyBjb3JyZXNwb25kaW5nIGNvbnRhaW5lcjogeWVsbG93IGZvciBwbGFzdGljcyBhbmQgY2FucywgYmx1ZSBmb3IgcGFwZXIgYW5kIGNhcmRib2FyZCwgZ3JlZW4gZm9yIGdsYXNzLjwvbGk+CjxsaT5JZiB0aGUgcGFja2FnZSBpcyBjb21wb3N0YWJsZSwgbG9vayBmb3IgdGhlIG9yZ2FuaWMgY29udGFpbmVyIG9yIGhvbWUgY29tcG9zdGVyIGlmIGFsbG93ZWQgaW4geW91ciBtdW5pY2lwYWxpdHkuPC9saT4KPC91bD4KPGgzPlJlY29tbWVuZGVkIFByYWN0aWNlczogV2FzaCBhbmQgU2VwYXJhdGU8L2gzPgo8dWw+CjxsaT5Db21wbGV0ZWx5IGVtcHR5IGFueSByZW1haW5pbmcgbGlxdWlkcyBvciBmb29kIGJlZm9yZSBkaXNwb3Npbmcgb2YgdGhlIHBhY2thZ2UuPC9saT4KPGxpPkxpZ2h0bHkgcmluc2UgcGFja2FnZXMgdGhhdCBjb250YWluZWQgZ3JlYXN5IG9yIHN0aWNreSBzdWJzdGFuY2VzLCBhdm9pZGluZyBjb250YW1pbmF0aW9uIG9mIHJlY3ljbGVkIG1hdGVyaWFscy48L2xpPgo8bGk+U2VwYXJhdGUgbGlkcywgbGFiZWxzLCBhbmQgb3RoZXIgY29tcG9uZW50cyB0aGF0IG1pZ2h0IGJlIG1hZGUgb2YgYSBkaWZmZXJlbnQgbWF0ZXJpYWwgZnJvbSB0aGUgbWFpbiBvbmUuPC9saT4KPGxpPkRvIG5vdCBuZXN0IG9yIHBsYWNlIHNtYWxsIHBhY2thZ2VzIGluc2lkZSBvdGhlcnM7IHRoaXMgY29tcGxpY2F0ZXMgcmVjeWNsaW5nIHdoZW4gdGhleSByZWFjaCB0aGUgZmFjaWxpdHkuPC9saT4KPC91bD4KPGgzPlRpcHMgdG8gQXZvaWQgQ29tbW9uIE1pc3Rha2VzIGFuZCBQcm9tb3RlIFN1c3RhaW5hYmlsaXR5PC9oMz4KPHVsPgo8bGk+RG8gbm90IGRlcG9zaXQgb2JqZWN0cyB3aXRoIGluc2VwYXJhYmxlIG1peGVkIG1hdGVyaWFscyBpbiBjb252ZW50aW9uYWwgcmVjeWNsaW5nIGJpbnMuPC9saT4KPGxpPkRvIG5vdCB0aHJvdyB1bnJlY29nbml6ZWQgcGFja2FnZXMgb3IgcGFja2FnZXMgd2l0aG91dCBzeW1ib2xzIGluIHNlbGVjdGl2ZSByZWN5Y2xpbmcuPC9saT4KPGxpPkFsd2F5cyBjaGVjayB0aGUgcGljdG9ncmFtczogZXZlbiBzbWFsbCBkZXRhaWxzLCBsaWtlIGEgY29sb3IgYmFuZCwgbWF5IGluZGljYXRlIHRoZSByaWdodCBjb250YWluZXIuPC9saT4KPGxpPldoZW5ldmVyIHBvc3NpYmxlLCBvcHQgZm9yIHJldXNhYmxlIHBhY2thZ2luZyBvciBtYXRlcmlhbHMgdGhhdCBhcmUgZWFzaWx5IHJlY3ljbGFibGUsIGxpbWl0aW5nIHRoZSB1c2Ugb2YgY29tcGxleCBvciBzaW5nbGUtdXNlIHBsYXN0aWNzLjwvbGk+CjxsaT5TdGF5IGluZm9ybWVkIGFib3V0IGxvY2FsIHJlZ3VsYXRpb25zLCBhcyB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgaW4gcmVjeWNsaW5nIGNlcnRhaW4gbWF0ZXJpYWxzIGRlcGVuZGluZyBvbiB0aGUgbXVuaWNpcGFsaXR5LjwvbGk+CjwvdWw+CjxwPkFwcGx5aW5nIHRoZXNlIHRpcHMgYW5kIHN1c3RhaW5hYmxlIHByYWN0aWNlcyBlbnN1cmVzIGJldHRlciByZXNvdXJjZSB1c2UgYW5kIHJlaW5mb3JjZXMgdGhlIGVudmlyb25tZW50YWwgYmVuZWZpdHMgb2YgcmVjeWNsaW5nIHBhY2thZ2luZyBzeW1ib2xzLjwvcD4KPGgyPlByYWN0aWNhbCBHdWlkZSBmb3IgT3B0aW1hbCBQYWNrYWdpbmcgV2FzdGUgTWFuYWdlbWVudDwvaDI+CjxwPkVmZmljaWVudGx5IG1hbmFnaW5nIHBhY2thZ2luZyB3YXN0ZSByZXF1aXJlcyBhdHRlbnRpb24sIGtub3dsZWRnZSBvZiBzeW1ib2xzLCBhbmQgYSB3aWxsaW5nbmVzcyB0byByZWR1Y2UgZW52aXJvbm1lbnRhbCBpbXBhY3QuIEVzdGFibGlzaGluZyBhIGNsZWFyIHJvdXRpbmUgZmFjaWxpdGF0ZXMgcmVjeWNsaW5nIGFuZCBmb3N0ZXJzIHJlc3BvbnNpYmxlIGhhYml0cy48L3A+CjxoMz5TdGVwcyBmb3IgRWZmaWNpZW50IFJlY3ljbGluZyBVc2luZyBTeW1ib2xzPC9oMz4KPG9sPgo8bGk+CjxwPjxzdHJvbmc+SWRlbnRpZnkgdGhlIFBhY2thZ2luZyBNYXRlcmlhbDwvc3Ryb25nPjxiciAvPkxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN5bWJvbDogTW9iaXVzIFRyaWFuZ2xlLCByZXNpbiBjb2RlLCBvciBjb250YWluZXIgcGljdG9ncmFtLiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgdGVsbCB5b3UgdGhlIGNvcnJlY3QgY29udGFpbmVyLjwvcD4KPC9saT4KPGxpPgo8cD48c3Ryb25nPkNsZWFuIGFuZCBTZXBhcmF0ZTwvc3Ryb25nPjxiciAvPk1ha2Ugc3VyZSB0byBjb21wbGV0ZWx5IGVtcHR5IHRoZSBwYWNrYWdlIGFuZCwgaWYgcG9zc2libGUsIHJpbnNlIGl0LiBSZW1vdmUgbGlkcywgbGFiZWxzLCBvciBvdGhlciBlbGVtZW50cyBvZiBkaWZmZXJlbnQgbWF0ZXJpYWxzLjwvcD4KPC9saT4KPGxpPgo8cD48c3Ryb25nPkRlcG9zaXQgaW4gdGhlIENvcnJlY3QgQ29udGFpbmVyPC9zdHJvbmc+PC9wPgo8L2xpPgo8L29sPgo8dWw+CjxsaT5ZZWxsb3c6IHBsYXN0aWNzIGFuZCBjYW5zLjwvbGk+CjxsaT5CbHVlOiBwYXBlciBhbmQgY2FyZGJvYXJkLjwvbGk+CjxsaT5HcmVlbjogZ2xhc3MuPGJyIC8+IENoZWNrIHRoZSBzeW1ib2wgaWYgdGhlcmUgYXJlIGRvdWJ0cy48L2xpPgo8L3VsPgo8b2w+CjxsaT4KPHA+PHN0cm9uZz5Bdm9pZCBNaXhpbmcgV2FzdGU8L3N0cm9uZz48YnIgLz5EbyBub3QgbmVzdCBzbWFsbCBwYWNrYWdlcyBpbnNpZGUgb3RoZXJzIG9yIGNvbWJpbmUgZGlmZmVyZW50IG1hdGVyaWFscy48L3A+CjwvbGk+CjxsaT4KPHA+PHN0cm9uZz5DaGVjayBmb3IgU3BlY2lhbCBMYWJlbHM8L3N0cm9uZz48YnIgLz5Gb3IgY29tcG9zdGFibGUsIHJldXNhYmxlLCBvciBvdGhlciBjZXJ0aWZpZWQgcGFja2FnaW5nLCBmb2xsb3cgdGhlIHNwZWNpZmljIGluc3RydWN0aW9ucyBwcm92aWRlZC48L3A+CjwvbGk+Cjwvb2w+CjxoMz5SZXVzZSBhbmQgV2FzdGUgUmVkdWN0aW9uPC9oMz4KPHVsPgo8bGk+UHJpb3JpdGl6ZSB0aGUgdXNlIG9mIHJldXNhYmxlIHBhY2thZ2luZyB3aGVuZXZlciBwb3NzaWJsZS48L2xpPgo8bGk+UmVkdWNlIHNpbmdsZS11c2UgcGFja2FnaW5nIGJ5IGJ1eWluZyBpbiBidWxrIG9yIG9wdGluZyBmb3Igc3VzdGFpbmFibGUgb3B0aW9ucy48L2xpPgo8bGk+UmV1c2UgYmFncywgamFycywgb3IgYm94ZXMgYmVmb3JlIHJlY3ljbGluZyB0aGVtLCBnaXZpbmcgdGhlbSBhIHNlY29uZCBsaWZlIGF0IGhvbWUuPC9saT4KPC91bD4KPGgzPlJlc291cmNlcyBhbmQgR3VpZGFuY2UgZm9yIFVuY2VydGFpbnR5PC9oMz4KPHVsPgo8bGk+Q2hlY2sgbXVuaWNpcGFsIGNsZWFuIHBvaW50cyBmb3Igd2FzdGUgb3V0c2lkZSB0aGUgdXN1YWwgc3lzdGVtLjwvbGk+CjxsaT5HZXQgaW5mb3JtZWQgdGhyb3VnaCBtdW5pY2lwYWwgZ3VpZGVzLCBvZmZpY2lhbCB3ZWJzaXRlcywgYW5kIHJlY3ljbGluZyBhcHBzLjwvbGk+CjxsaT5SZW1lbWJlciB0aGF0IEdyZWVudXNvIHBhY2thZ2luZyBwcm92aWRlcyBjbGVhciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWF0ZXJpYWwgYW5kIGNvcnJlY3QgcmVjeWNsaW5nLjwvbGk+CjxsaT5JZiB1bnN1cmUgYWJvdXQgdGhlIHN5bWJvbCBvciB3YXN0ZSwgY2hlY2sgb25saW5lIHJlc291cmNlcyBmcm9tIG11bmljaXBhbGl0aWVzIG9yIHdhc3RlIG1hbmFnZW1lbnQgcG9ydGFscy48L2xpPgo8L3VsPgo8cD5FbWJyYWNpbmcgdGhpcyBkYWlseSBwcm9jZXNzIHdpdGggYXR0ZW50aW9uIHRvIHN5bWJvbHMgaGVscHMgb3B0aW1pemUgcGFja2FnaW5nIHJlY3ljbGluZy4gQ29ycmVjdCBpZGVudGlmaWNhdGlvbiwgc2VwYXJhdGlvbiwgYW5kIHJlZHVjdGlvbiBwb3NpdGl2ZWx5IGltcGFjdCB0aGUgbWF0ZXJpYWwgY3ljbGUgYW5kIGVudmlyb25tZW50YWwgY2FyZS48L3A+dw1jb3JlL2ZyZWVmb3Jtd4ZtPGgxPkRpc2NvdmVyIHRoZSBNZWFuaW5nIG9mIFJlY3ljbGluZyBTeW1ib2xzIG9uIFBhY2thZ2luZyBhbmQgVGhlaXIgSW1wb3J0YW5jZTwvaDE+CjxwPlRoZSBwYWNrYWdpbmcgd2UgdXNlIGRhaWx5IGNhcnJpZXMgcmVjeWNsaW5nIHN5bWJvbHMgdGhhdCB3ZSBvZnRlbiBvdmVybG9vay4gS25vd2luZyB0aGVpciBtZWFuaW5nIGhlbHBzIHVzIGRpc3Bvc2Ugb2YgZWFjaCBtYXRlcmlhbCBpbiB0aGUgY29ycmVjdCBiaW4sIHJlZHVjZSBlcnJvcnMsIGFuZCBjYXJlIGZvciB0aGUgZW52aXJvbm1lbnQuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBpZGVudGlmeSB0aGVzZSBzeW1ib2xzIGFuZCB1c2UgdGhlbSB0byByZWN5Y2xlIGVhc2lseS48L3A+CjxoMj5XaGF0IGRvIHRoZSByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgbWVhbj88L2gyPgo8cD5UaGUgcHJlc2VuY2Ugb2YgcmVjeWNsaW5nIHN5bWJvbHMgb24gcGFja2FnaW5nIG9mdGVuIGdlbmVyYXRlcyBmcmVxdWVudCBxdWVzdGlvbnM6IERvZXMgaXQgbWVhbiB0aGUgcGFja2FnZSBpcyBhbHdheXMgcmVjeWNsYWJsZT8gV2hpY2ggYmluIHNob3VsZCBpdCBnbyBpbnRvPyBEbyBhbGwgY2l0aWVzIHVzZSB0aGUgc2FtZSBzeW1ib2xzPyBUaGVzZSBxdWVzdGlvbnMgYXJlIGNvbW1vbiBhbmQgaGlnaGxpZ2h0IHRoZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNpZ25hbHMgdGhhdCBhcHBlYXIgb24gYm90dGxlcywgY2FydG9ucywgY2FucywgYW5kIGJveGVzIHdlIHVzZSBkYWlseS48L3A+CjxoMz5CYXNpYyBSZWN5Y2xpbmcgU3ltYm9scyBhbmQgVGhlaXIgRnVuY3Rpb248L2gzPgo8cD5UaGUgbW9zdCB3ZWxsLWtub3duIHJlY3ljbGluZyBzeW1ib2wgaXMgdGhlIG9uZSB3aXRoIHRocmVlIGFycm93cyBmb3JtaW5nIGEgdHJpYW5nbGUuIEl0cyBtYWluIGZ1bmN0aW9uIGlzIHRvIGluZGljYXRlIHRoYXQgdGhlIHBhY2thZ2UgY2FuIGJlIHJlY3ljbGVkLCBidXQgaXQgb25seSBzdWdnZXN0cyB0aGUgcG9zc2liaWxpdHksIG5vdCBhbiBhYnNvbHV0ZSBndWFyYW50ZWUgdGhhdCB0aGUgbWF0ZXJpYWwgd2lsbCBiZSByZWN5Y2xlZCBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gT2Z0ZW4sIHRoaXMgdHJpYW5nbGUgaW5jbHVkZXMgYSBudW1iZXIgb3IgbGV0dGVycyBpbnNpZGUsIGlkZW50aWZ5aW5nIHRoZSB0eXBlIG9mIG1hdGVyaWFsLCBzdWNoIGFzIFBFVCwgSERQRSwgUFAsIG9yIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgZm9yIHBhcGVyLCBjYXJkYm9hcmQsIGFuZCBvdGhlciBtYXRlcmlhbHMuPC9wPgo8cD5PdGhlciBjb21tb24gc3ltYm9scyBvbiBwYWNrYWdpbmcgYXJlIHBpY3RvZ3JhbXMgb2YgY29sb3JlZCBjb250YWluZXJzLCB3aGljaCBkaXJlY3RseSBpbmRpY2F0ZSB3aGljaCBmcmFjdGlvbiB0aGUgd2FzdGUgYmVsb25ncyB0bzogeWVsbG93IGZvciBwbGFzdGljcyBhbmQgY2FucywgYmx1ZSBmb3IgcGFwZXIgYW5kIGNhcmRib2FyZCwgZ3JlZW4gZm9yIGdsYXNzLiBUaGVzZSBpY29ucyBoZWxwIGNvbnN1bWVycyBjb3JyZWN0bHkgc2VwYXJhdGUgd2FzdGUgYXQgdGhlIHNvdXJjZS48L3A+CjxoMz5JbXBvcnRhbmNlIG9mIFJlY29nbml6aW5nIFN5bWJvbHMgZm9yIFByb3BlciBXYXN0ZSBNYW5hZ2VtZW50PC9oMz4KPHA+VW5kZXJzdGFuZGluZyB0aGUgbWVhbmluZyBvZiB0aGVzZSBzeW1ib2xzIGlzIGtleSB0byBhdm9pZGluZyBtaXN0YWtlcyBpbiBtYXRlcmlhbCBzZXBhcmF0aW9uLiBBIHBhY2thZ2Ugd2l0aCBhIG1pc2ludGVycHJldGVkIHN5bWJvbCBjYW4gZW5kIHVwIGluIHRoZSB3cm9uZyBjb250YWluZXIsIGNvbXBsaWNhdGluZyB0aGUgcmVjeWNsaW5nIHByb2Nlc3MgYW5kIGNvbnRhbWluYXRpbmcgb3RoZXIgZnJhY3Rpb25zLiBUaGVyZWZvcmUsIHBheWluZyBhdHRlbnRpb24gdG8gc3ltYm9scyBiZWZvcmUgZGlzcG9zaW5nIG9mIGEgcGFja2FnZSBhbGxvd3MgdXMgdG8gYWN0IHJlc3BvbnNpYmx5IGFuZCBlZmZpY2llbnRseSwgZmFjaWxpdGF0aW5nIHJlY3ljbGluZyBpbiBwbGFudHMgYW5kIGhlbHBpbmcgdG8gcmVkdWNlIHRoZSB2b2x1bWUgb2Ygd2FzdGUgZGVzdGluZWQgZm9yIGxhbmRmaWxscy48L3A+CjxwPkluIHN1bW1hcnksIHJlY3ljbGluZyBzeW1ib2xzIG9uIHBhY2thZ2luZyBkbyBtb3JlIHRoYW4gaW5kaWNhdGUgdGhlIHBvc3NpYmlsaXR5IG9mIHJlY3ljbGluZzsgdGhleSBhcmUgYW4gZXNzZW50aWFsIHRvb2wgZm9yIHByb3BlciB3YXN0ZSBtYW5hZ2VtZW50LiBDb3JyZWN0IGludGVycHJldGF0aW9uIGhlbHBzIGNsb3NlIHRoZSBsb29wIGFuZCBwcm9tb3RlcyBzdXN0YWluYWJsZSBoYWJpdHMgaW4gZGFpbHkgbGlmZS48L3A+CjxoMj5NYWluIFJlY3ljbGluZyBTeW1ib2xzIG9uIFBhY2thZ2luZyBhbmQgVGhlaXIgTWVhbmluZzwvaDI+CjxwPlJlY29nbml6aW5nIHJlY3ljbGluZyBzeW1ib2xzIGlzIGNydWNpYWwgZm9yIGlkZW50aWZ5aW5nIHRoZSBtYXRlcmlhbCBvZiB0aGUgcGFja2FnaW5nIGFuZCBrbm93aW5nIHdoaWNoIGNvbnRhaW5lciBpdCBzaG91bGQgYmUgcGxhY2VkIGluLiBUaGVzZSBzeW1ib2xzIHByb3ZpZGUgcXVpY2sgaW5mb3JtYXRpb24gYWJvdXQgY29tcG9zaXRpb24sIHJlY3ljbGFiaWxpdHksIGFuZCBvdGhlciBpbXBvcnRhbnQgY2hhcmFjdGVyaXN0aWNzIHRoYXQgZm9zdGVyIGVmZmljaWVudCB3YXN0ZSBtYW5hZ2VtZW50LjwvcD4KPGgzPk1vc3QgQ29tbW9uIFJlY3ljbGluZyBTeW1ib2xzPC9oMz4KPHA+PHN0cm9uZz5Nb2JpdXMgVHJpYW5nbGUgKOKZu++4jyk8L3N0cm9uZz48YnIgLz5UaGlzIGlzIHRoZSBpbnRlcm5hdGlvbmFsIHJlY3ljbGluZyBzeW1ib2wsIGNvbnNpc3Rpbmcgb2YgdGhyZWUgY2hhc2luZyBhcnJvd3MgZm9ybWluZyBhIHRyaWFuZ2xlLiBJdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcHJvZHVjdCBvciBtYXRlcmlhbCBpcyByZWN5Y2xhYmxlLiBJdCBzb21ldGltZXMgaW5jb3Jwb3JhdGVzIGEgcGVyY2VudGFnZSBpbnNpZGUgdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHJlY3ljbGVkIG1hdGVyaWFsLiBJZiBpdCBoYXMgYSBudW1iZXIgb3IgaW50ZXJuYWwgaW5pdGlhbHMsIGl0IGluZGljYXRlcyB0aGUgcmVzaW4gY29kZSBmb3IgcGxhc3RpY3MuPC9wPgo8cD48c3Ryb25nPlJlc2luIENvZGVzIChQbGFzdGljcyk8L3N0cm9uZz48YnIgLz5JbnNpZGUgdGhlIHJlY3ljbGluZyB0cmlhbmdsZSwgcGxhc3RpYyBwYWNrYWdlcyBzaG93IGEgbnVtYmVyIGZyb20gMSB0byA3IGFuZCBzb21ldGltZXMgYW4gYWJicmV2aWF0aW9uOjwvcD4KPHVsPgo8bGk+MSAoUEVUIG9yIFBFVEUpOiBVc2VkIGluIHdhdGVyIG9yIHNvZnQgZHJpbmsgYm90dGxlcy48L2xpPgo8bGk+MiAoSERQRSk6IE1pbGsgY29udGFpbmVycywgZGV0ZXJnZW50IGJvdHRsZXMsIG9yIGJhZ3MuPC9saT4KPGxpPjMgKFBWQyk6IERldGVyZ2VudCBib3R0bGVzIGFuZCBzb21lIGZvb2QgcGFja2FnaW5nLjwvbGk+CjxsaT40IChMRFBFKTogRmxleGlibGUgcGxhc3RpYyBiYWdzIGFuZCBmaWxtcy48L2xpPgo8bGk+NSAoUFApOiBMaWRzLCBzdHJhd3MsIGFuZCB5b2d1cnQgY29udGFpbmVycy48L2xpPgo8bGk+NiAoUFMpOiBEaXNwb3NhYmxlIGN1cHMgb3IgbWVhdCB0cmF5cy48L2xpPgo8bGk+NyAoT3RoZXIpOiBQbGFzdGljcyBub3QgaW5jbHVkZWQgaW4gdGhlIHByZXZpb3VzIGNhdGVnb3JpZXMuPC9saT4KPC91bD4KPHA+PHN0cm9uZz5Db250YWluZXIgUGljdG9ncmFtczwvc3Ryb25nPjxiciAvPlRoZXNlIGFyZSBpY29ucyByZXByZXNlbnRpbmcgdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBmb3IgZWFjaCBwYWNrYWdlOjwvcD4KPHVsPgo8bGk+WWVsbG93IGNvbnRhaW5lcjogUGxhc3RpY3MgYW5kIGNhbnMuPC9saT4KPGxpPkJsdWUgY29udGFpbmVyOiBQYXBlciBhbmQgY2FyZGJvYXJkLjwvbGk+CjxsaT5HcmVlbiBjb250YWluZXI6IEdsYXNzLjwvbGk+CjwvdWw+CjxwPlNvbWUgcGFja2FnZXMgZGlyZWN0bHkgc2hvdyB0aGUgcGljdG9ncmFtIG9yIGEgc3RyaXAgb2YgdGhlIG9mZmljaWFsIGNvbG9yLjwvcD4KPGgzPkRpZmZlcmVuY2VzIEJldHdlZW4gU3ltYm9scyBBY2NvcmRpbmcgdG8gTWF0ZXJpYWw8L2gzPgo8cD48c3Ryb25nPlBsYXN0aWM8L3N0cm9uZz48YnIgLz5JZGVudGlmaWVkIHdpdGggdGhlIE1vYml1cyB0cmlhbmdsZSBhbG9uZyB3aXRoIGEgcmVzaW4gbnVtYmVyLiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgcGxhc3RpYyBhbmQgaXRzIHJlY3ljbGFiaWxpdHkuPC9wPgo8cD48c3Ryb25nPkNhcmRib2FyZCBhbmQgUGFwZXI8L3N0cm9uZz48YnIgLz5DYXJyeSB0aGUgc2ltcGxlIHJlY3ljbGluZyBzeW1ib2wsIHNvbWV0aW1lcyBhY2NvbXBhbmllZCBieSBmb2xkZWQgcGFwZXIgcGljdG9ncmFtcyBvciB0aGUgYmx1ZSBjb250YWluZXIgaWNvbi4gQWltIHRvIHJlY3ljbGUgd2FzdGUgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZnJhY3Rpb24uPC9wPgo8cD48c3Ryb25nPkdsYXNzPC9zdHJvbmc+PGJyIC8+VXN1YWxseSBtYXJrZWQgd2l0aCB0aGUgaWNvbiBvZiBhIGdsYXNzIGNvbnRhaW5lciBhbmQgYSBjaXJjdWxhciBhcnJvdywgb3IgdGhlIGdyZWVuIHBpY3RvZ3JhbS48L3A+CjxwPjxzdHJvbmc+TWV0YWw8L3N0cm9uZz48YnIgLz5DYW5zIGFuZCBtZXRhbCBwYWNrYWdpbmcgbWF5IGRpc3BsYXkgYSBtYWduZXQgc3ltYm9sLCBpbmRpY2F0aW5nIHRoZWlyIHJlY3ljbGFiaWxpdHkgdGhyb3VnaCBtYWduZXRpYyBzZXBhcmF0aW9uLCBvciBzaW1wbHkgdGhlIHRyYWRpdGlvbmFsIHRyaWFuZ2xlLjwvcD4KPGgzPk90aGVyIFJlbGV2YW50IFN5bWJvbHM8L2gzPgo8cD48c3Ryb25nPkJQQSBGcmVlPC9zdHJvbmc+PGJyIC8+SW5kaWNhdGVzIHRoZSBhYnNlbmNlIG9mIGJpc3BoZW5vbCBBLCBhIHBvdGVudGlhbGx5IGhhcm1mdWwgY2hlbWljYWwgaW4gcGxhc3RpY3MuIEl0IGlzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHJlY3ljbGluZyBidXQgdG8gdGhlIGZvb2Qgc2FmZXR5IG9mIHRoZSBwYWNrYWdlLjwvcD4KPHA+PHN0cm9uZz5Db21wb3N0YWJsZTwvc3Ryb25nPjxiciAvPlRoZSBjb21wb3N0YWJsZSBzeW1ib2wgdHlwaWNhbGx5IGRpc3BsYXlzIGEgbGVhZiBvciBzcGlyYWwsIGluZGljYXRpbmcgdGhhdCB0aGUgcGFja2FnZSBjYW4gZGVjb21wb3NlIGFsb25nc2lkZSBvcmdhbmljIHdhc3RlIHVuZGVyIGluZHVzdHJpYWwgY29tcG9zdGluZyBjb25kaXRpb25zLiBJdCBpcyBjcnVjaWFsIG5vdCB0byBtaXggdGhlc2UgcGFja2FnZXMgd2l0aCBjb252ZW50aW9uYWwgcGxhc3RpYyB3YXN0ZS48L3A+CjxwPjxzdHJvbmc+UmV1c2FibGU8L3N0cm9uZz48YnIgLz5BIHN5bWJvbCBvZiB0d28gY2lyY3VsYXIgYXJyb3dzIG9yIHRoZSB0ZXh0IHJldXNhYmxlIGlkZW50aWZpZXMgcGFja2FnZXMgZGVzaWduZWQgdG8gYmUgdXNlZCBtdWx0aXBsZSB0aW1lcyBiZWZvcmUgZW50ZXJpbmcgdGhlIHJlY3ljbGluZyBjeWNsZS48L3A+CjxoMz5Db21wbGVtZW50YXJ5IFN5bWJvbHM8L2gzPgo8dWw+CjxsaT48c3Ryb25nPkZvb2QgQ29udGFjdCBTYWZlPC9zdHJvbmc+OiBBIGNyb3NzZWQgZ2xhc3MgYW5kIGZvcmsgaW5kaWNhdGUgdGhhdCB0aGUgcGFja2FnZSBpcyBzYWZlIGZvciBmb29kLjwvbGk+CjxsaT48c3Ryb25nPkRpc3Bvc2UgYXQgQ29sbGVjdGlvbiBQb2ludDwvc3Ryb25nPjogRm9yIHByb2R1Y3RzIHRoYXQgc2hvdWxkIG5vdCBnbyBpbiBkb21lc3RpYyBjb250YWluZXJzLjwvbGk+CjxsaT48c3Ryb25nPkdyZWVuIERvdDwvc3Ryb25nPjogSW5kaWNhdGVzIHRoYXQgdGhlIG1hbnVmYWN0dXJlciBjb21wbGllcyB3aXRoIHBhY2thZ2luZyB3YXN0ZSBtYW5hZ2VtZW50LCB0aG91Z2ggaXQgZG9lc24ndCBndWFyYW50ZWUgdGhlIHJlY3ljbGFiaWxpdHkgb2YgdGhlIHByb2R1Y3QuPC9saT4KPC91bD4KPHA+Q29ycmVjdGx5IGludGVycHJldGluZyB0aGVzZSBzeW1ib2xzIGNvbnRyaWJ1dGVzIHRvIHByZWNpc2Ugc2VsZWN0aXZlIHNvcnRpbmcsIGZhY2lsaXRhdGVzIG1hdGVyaWFsIHJlY3ljbGluZywgYW5kIHN1cHBvcnRzIHRoZSBjaXJjdWxhciBlY29ub215IG1vZGVsLiBUaHVzLCBlYWNoIHBhY2thZ2UncyBsYWJlbCBiZWNvbWVzIGEga2V5IHRvb2wgZm9yIHBhY2thZ2luZyByZWN5Y2xpbmcgYW5kIHJlc3BlY3QgZm9yIHRoZSBlbnZpcm9ubWVudC48L3A+CjxoMj5SZWd1bGF0aW9uIGFuZCBSZXF1aXJlbWVudHMgZm9yIFBhY2thZ2luZyBNYXJraW5nPC9oMj4KPHA+VGhlIHJlZ3VsYXRpb25zIG9uIHBhY2thZ2luZyBtYXJraW5nIGVzdGFibGlzaCBob3cgbWF0ZXJpYWxzIHNob3VsZCBiZSBpZGVudGlmaWVkIGFuZCB3aGF0IG1hbmRhdG9yeSBpbmZvcm1hdGlvbiBtdXN0IGFwcGVhciB0byBmYWNpbGl0YXRlIHByb3BlciB3YXN0ZSBtYW5hZ2VtZW50LjwvcD4KPGgzPkxlZ2lzbGF0aXZlIEZyYW1ld29yazogUm95YWwgRGVjcmVlIDEwNTUvMjAyMjwvaDM+CjxwPlJveWFsIERlY3JlZSAxMDU1LzIwMjIgcmVndWxhdGVzIHBhY2thZ2luZyBhbmQgcGFja2FnaW5nIHdhc3RlIG1hbmFnZW1lbnQgaW4gU3BhaW4uIEl0IGltcG9zZXMgdGhlIG9ibGlnYXRpb24gdG8gbWFyayBwYWNrYWdlcyB3aXRoIHN5bWJvbHMgdGhhdCBhbGxvdyB1c2VycyB0byBpZGVudGlmeSB0aGUgbWF0ZXJpYWwgYW5kIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIuIFRoaXMgbGVnaXNsYXRpb24gc2V0cyBob21vZ2VuZW91cyBjcml0ZXJpYSBmb3IgdGhlIGVudGlyZSB0ZXJyaXRvcnksIGFpbWluZyB0byBpbmNyZWFzZSByZWN5Y2xpbmcgcmF0ZXMsIGltcHJvdmUgdHJhY2VhYmlsaXR5LCBhbmQgcmVkdWNlIHRoZSBlbnZpcm9ubWVudGFsIGltcGFjdCBvZiB3YXN0ZS48L3A+CjxwPlRoZSBSb3lhbCBEZWNyZWUgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIG1hcmtpbmcgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQsIGRlcGVuZGluZyBvbiB0aGUgbWF0ZXJpYWwuIFBsYXN0aWMsIGNhcmRib2FyZCwgcGFwZXIsIG1ldGFsLCBhbmQgZ2xhc3MgbXVzdCBiZSBjb3JyZWN0bHkgaWRlbnRpZmllZCwgYW5kIG11bHRpbGF5ZXIgcGFja2FnZXMgcmVxdWlyZSBhIHNwZWNpZmljIHN5bWJvbCByZWZsZWN0aW5nIHRoZWlyIGNvbXBvc2l0aW9uLiBBZGRpdGlvbmFsbHksIGl0IGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBkb21lc3RpYywgY29tbWVyY2lhbCwgYW5kIGluZHVzdHJpYWwgcGFja2FnaW5nLCByZWd1bGF0aW5nIHRoZSBtYXJraW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gZWFjaCBjYXNlLjwvcD4KPGgzPkRpZmZlcmVuY2VzIEJldHdlZW4gTWFuZGF0b3J5IGFuZCBWb2x1bnRhcnkgTWFya2luZzwvaDM+CjxwPk5vdCBhbGwgc3ltYm9scyBvbiBwYWNrYWdpbmcgYXJlIG1hbmRhdG9yeSBieSBsYXcuIFRoZSBtYW5kYXRvcnkgbWFya2luZyBpbmNsdWRlcyB0aGUgY29kZXMgaWRlbnRpZnlpbmcgdGhlIHBhY2thZ2luZyBtYXRlcmlhbCwgdGhlIHBpY3RvZ3JhbXMgZm9yIGNvcnJlY3Qgc2VwYXJhdGlvbiwgYW5kIGluIHNvbWUgY2FzZXMsIHN5bWJvbHMgZm9yIHJldXNhYmxlIG9yIGNvbXBvc3RhYmxlIHBhY2thZ2luZywgd2hlcmUgYXBwbGljYWJsZS4gVGhlIG9iamVjdGl2ZSBpcyB0byBlbnN1cmUgdGhhdCBjb25zdW1lcnMgY2FuIHByb3Blcmx5IHNlcGFyYXRlIHdhc3RlLjwvcD4KPHA+Vm9sdW50YXJ5IG1hcmtpbmcgaW5jbHVkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBub3QgcmVxdWlyZWQgYnkgbGF3LCBzdWNoIGFzIHRoZSBhbW91bnQgb2YgcmVjeWNsZWQgbWF0ZXJpYWwsIHRoZSBjYXJib24gZm9vdHByaW50LCBvciBjZXJ0YWluIHN1c3RhaW5hYmlsaXR5IHN5bWJvbHMuIFRoZXNlIGNhbiBwcm92aWRlIGFkZGVkIHZhbHVlIGZvciBjb25zdW1lcnMgYnV0IGRvIG5vdCByZXBsYWNlIHRoZSBtYW5kYXRvcnkgbGFiZWxpbmcgcmVxdWlyZWQgYnkgdGhlIFJveWFsIERlY3JlZS48L3A+CjxoMz5SZXF1aXJlbWVudHMgZm9yIENvbXBhbmllcyBhbmQgQ2l0aXplbnMnIFJlc3BvbnNpYmlsaXRpZXM8L2gzPgo8cD48c3Ryb25nPkNvbXBhbmllczwvc3Ryb25nPjxiciAvPkNvbXBhbmllcyByZXNwb25zaWJsZSBmb3IgbWFya2V0aW5nIHBhY2thZ2VzIG11c3QgZW5zdXJlIGFsbCB0aGVpciBwYWNrYWdpbmcgY29tcGxpZXMgd2l0aCBsZWdhbCBtYXJraW5nLiBUaGlzIGluY2x1ZGVzIHBsYWNpbmcgdGhlIHJlY3ljbGluZyBzeW1ib2xzIGFuZCBtYXRlcmlhbCBpZGVudGlmaWNhdGlvbiBjb2RlcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHR5cGUgb2Ygd2FzdGUsIHR5cG9ncmFwaHksIGFuZCB2aXNpYmlsaXR5IHNldCBieSBsZWdpc2xhdGlvbi4gVGhleSBtdXN0IGFsc28gZW5zdXJlIHRoZSBpbmZvcm1hdGlvbiBpcyBjbGVhciBhbmQgYWNjZXNzaWJsZSB0byBjb25zdW1lcnMsIGF2b2lkaW5nIGNvbmZ1c2lvbiB0aGF0IGNvdWxkIGFmZmVjdCB3YXN0ZSBtYW5hZ2VtZW50LjwvcD4KPHA+PHN0cm9uZz5DaXRpemVuczwvc3Ryb25nPjxiciAvPkNvcnJlY3Qgc2VwYXJhdGlvbiBhbmQgZGlzcG9zYWwgb2YgcGFja2FnaW5nIGZvbGxvd2luZyB0aGUgc3ltYm9scyBhbmQgcGljdG9ncmFtcyBhcmUgYSBzaGFyZWQgcmVzcG9uc2liaWxpdHkuIFVzZXJzIG11c3QgY29uc3VsdCB0aGUgcGljdG9ncmFtcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHBhY2thZ2luZyB0byBjb21wbHkgd2l0aCBjdXJyZW50IHJlZ3VsYXRpb25zIGFuZCBjb250cmlidXRlIHRvIGVmZmVjdGl2ZSByZWN5Y2xpbmcuIENpdGl6ZW4gaW52b2x2ZW1lbnQgaXMgZXNzZW50aWFsIHRvIG1haW50YWluIHRoZSBtYXRlcmlhbCBjeWNsZSBhbmQgYWR2YW5jZSB0b3dhcmRzIGEgY2lyY3VsYXIgZWNvbm9teS48L3A+CjxwPkNvbXBsaWFuY2Ugd2l0aCB0aGlzIHJlZ3VsYXRpb24gYW5kIGNsZWFyIGxhYmVsaW5nIGFyZSBlc3NlbnRpYWwgZm9yIGFjaGlldmluZyB3YXN0ZSByZWR1Y3Rpb24gYW5kIHJlY3ljbGluZyB0YXJnZXRzIHNldCBhdCBFdXJvcGVhbiBhbmQgbmF0aW9uYWwgbGV2ZWxzLiBQcm9wZXJseSBhcHBseWluZyBtYXJraW5nIG9uIHBhY2thZ2luZyBoZWxwcyBwcmV2ZW50IGVycm9ycyBpbiBzZXBhcmF0aW9uIGFuZCBvcHRpbWl6ZXMgdGhlIGVudGlyZSByZWN5Y2xpbmcgcHJvY2Vzcy48L3A+CjxoMj5Ib3cgdG8gSWRlbnRpZnkgYW5kIENvcnJlY3RseSBVc2UgUmVjeWNsaW5nIFN5bWJvbHM8L2gyPgo8cD5Lbm93aW5nIGhvdyB0byBsb2NhdGUgYW5kIHVuZGVyc3RhbmQgcmVjeWNsaW5nIHN5bWJvbHMgb24gcGFja2FnaW5nIGlzIGVzc2VudGlhbCBmb3IgcHJvcGVyIHdhc3RlIG1hbmFnZW1lbnQuIFRoZXNlIGljb25zIHByb3ZpZGUgZGlyZWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBwYWNrYWdpbmcgbWF0ZXJpYWwgYW5kIGl0cyBkZXN0aW55IGluIHRoZSByZWN5Y2xpbmcgcHJvY2Vzcy48L3A+CjxoMz5XaGVyZSB0byBGaW5kIHRoZSBTeW1ib2xzPC9oMz4KPHA+UmVjeWNsaW5nIHN5bWJvbHMgYXJlIHVzdWFsbHkgcGxhY2VkIGluIGRpc2NyZXRlIGJ1dCB2aXNpYmxlIGxvY2F0aW9ucyBvbiB0aGUgcGFja2FnaW5nOjwvcD4KPHVsPgo8bGk+Qm90dG9tIG9yIGJhY2sgb2YgYm90dGxlcywgamFycywgYW5kIGJveGVzLjwvbGk+CjxsaT5OZWFyIHRoZSBpbmdyZWRpZW50IGxhYmVsIG9yIGluIHRoZSBwcm9kdWN0IGRlc2NyaXB0aW9uLjwvbGk+CjxsaT5PbiB0aGUgc2VhbCBvciBsaWQsIGVzcGVjaWFsbHkgb24gc21hbGwgcGFja2FnZXMuPC9saT4KPGxpPk9uIGJhZ3MsIHRoZXkgb2Z0ZW4gYXBwZWFyIGNsb3NlIHRvIGFuIGVkZ2Ugb3IgYWxvbmdzaWRlIHVzYWdlIGluc3RydWN0aW9ucy48L2xpPgo8L3VsPgo8cD5Db3JyZWN0bHkgcmVhZGluZyB0aGUgc3ltYm9sIGVuc3VyZXMgeW91IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoZSBwYWNrYWdlIGFmdGVyIHVzZS48L3A+CjxoMz5Qcm9wZXIgTWF0ZXJpYWwgU2VwYXJhdGlvbjwvaDM+CjxwPkZvciBjb3JyZWN0IHdhc3RlIHNlcGFyYXRpb24sIHBheSBhdHRlbnRpb24gdG8gdGhlIHN5bWJvbDo8L3A+Cjx1bD4KPGxpPklkZW50aWZ5IHRoZSBtYXRlcmlhbCAocGxhc3RpYywgZ2xhc3MsIG1ldGFsLCBwYXBlciwgY2FyZGJvYXJkKSBhY2NvcmRpbmcgdG8gdGhlIHBpY3RvZ3JhbSBvciByZXNpbiBjb2RlLjwvbGk+CjxsaT5EZXBvc2l0IGVhY2ggd2FzdGUgaW4gaXRzIGNvcnJlc3BvbmRpbmcgY29udGFpbmVyOiB5ZWxsb3cgZm9yIHBsYXN0aWNzIGFuZCBjYW5zLCBibHVlIGZvciBwYXBlciBhbmQgY2FyZGJvYXJkLCBncmVlbiBmb3IgZ2xhc3MuPC9saT4KPGxpPklmIHRoZSBwYWNrYWdlIGlzIGNvbXBvc3RhYmxlLCBsb29rIGZvciB0aGUgb3JnYW5pYyBjb250YWluZXIgb3IgaG9tZSBjb21wb3N0ZXIgaWYgYWxsb3dlZCBpbiB5b3VyIG11bmljaXBhbGl0eS48L2xpPgo8L3VsPgo8aDM+UmVjb21tZW5kZWQgUHJhY3RpY2VzOiBXYXNoIGFuZCBTZXBhcmF0ZTwvaDM+Cjx1bD4KPGxpPkNvbXBsZXRlbHkgZW1wdHkgYW55IHJlbWFpbmluZyBsaXF1aWRzIG9yIGZvb2QgYmVmb3JlIGRpc3Bvc2luZyBvZiB0aGUgcGFja2FnZS48L2xpPgo8bGk+TGlnaHRseSByaW5zZSBwYWNrYWdlcyB0aGF0IGNvbnRhaW5lZCBncmVhc3kgb3Igc3RpY2t5IHN1YnN0YW5jZXMsIGF2b2lkaW5nIGNvbnRhbWluYXRpb24gb2YgcmVjeWNsZWQgbWF0ZXJpYWxzLjwvbGk+CjxsaT5TZXBhcmF0ZSBsaWRzLCBsYWJlbHMsIGFuZCBvdGhlciBjb21wb25lbnRzIHRoYXQgbWlnaHQgYmUgbWFkZSBvZiBhIGRpZmZlcmVudCBtYXRlcmlhbCBmcm9tIHRoZSBtYWluIG9uZS48L2xpPgo8bGk+RG8gbm90IG5lc3Qgb3IgcGxhY2Ugc21hbGwgcGFja2FnZXMgaW5zaWRlIG90aGVyczsgdGhpcyBjb21wbGljYXRlcyByZWN5Y2xpbmcgd2hlbiB0aGV5IHJlYWNoIHRoZSBmYWNpbGl0eS48L2xpPgo8L3VsPgo8aDM+VGlwcyB0byBBdm9pZCBDb21tb24gTWlzdGFrZXMgYW5kIFByb21vdGUgU3VzdGFpbmFiaWxpdHk8L2gzPgo8dWw+CjxsaT5EbyBub3QgZGVwb3NpdCBvYmplY3RzIHdpdGggaW5zZXBhcmFibGUgbWl4ZWQgbWF0ZXJpYWxzIGluIGNvbnZlbnRpb25hbCByZWN5Y2xpbmcgYmlucy48L2xpPgo8bGk+RG8gbm90IHRocm93IHVucmVjb2duaXplZCBwYWNrYWdlcyBvciBwYWNrYWdlcyB3aXRob3V0IHN5bWJvbHMgaW4gc2VsZWN0aXZlIHJlY3ljbGluZy48L2xpPgo8bGk+QWx3YXlzIGNoZWNrIHRoZSBwaWN0b2dyYW1zOiBldmVuIHNtYWxsIGRldGFpbHMsIGxpa2UgYSBjb2xvciBiYW5kLCBtYXkgaW5kaWNhdGUgdGhlIHJpZ2h0IGNvbnRhaW5lci48L2xpPgo8bGk+V2hlbmV2ZXIgcG9zc2libGUsIG9wdCBmb3IgcmV1c2FibGUgcGFja2FnaW5nIG9yIG1hdGVyaWFscyB0aGF0IGFyZSBlYXNpbHkgcmVjeWNsYWJsZSwgbGltaXRpbmcgdGhlIHVzZSBvZiBjb21wbGV4IG9yIHNpbmdsZS11c2UgcGxhc3RpY3MuPC9saT4KPGxpPlN0YXkgaW5mb3JtZWQgYWJvdXQgbG9jYWwgcmVndWxhdGlvbnMsIGFzIHRoZXJlIGFyZSBkaWZmZXJlbmNlcyBpbiByZWN5Y2xpbmcgY2VydGFpbiBtYXRlcmlhbHMgZGVwZW5kaW5nIG9uIHRoZSBtdW5pY2lwYWxpdHkuPC9saT4KPC91bD4KPHA+QXBwbHlpbmcgdGhlc2UgdGlwcyBhbmQgc3VzdGFpbmFibGUgcHJhY3RpY2VzIGVuc3VyZXMgYmV0dGVyIHJlc291cmNlIHVzZSBhbmQgcmVpbmZvcmNlcyB0aGUgZW52aXJvbm1lbnRhbCBiZW5lZml0cyBvZiByZWN5Y2xpbmcgcGFja2FnaW5nIHN5bWJvbHMuPC9wPgo8aDI+UHJhY3RpY2FsIEd1aWRlIGZvciBPcHRpbWFsIFBhY2thZ2luZyBXYXN0ZSBNYW5hZ2VtZW50PC9oMj4KPHA+RWZmaWNpZW50bHkgbWFuYWdpbmcgcGFja2FnaW5nIHdhc3RlIHJlcXVpcmVzIGF0dGVudGlvbiwga25vd2xlZGdlIG9mIHN5bWJvbHMsIGFuZCBhIHdpbGxpbmduZXNzIHRvIHJlZHVjZSBlbnZpcm9ubWVudGFsIGltcGFjdC4gRXN0YWJsaXNoaW5nIGEgY2xlYXIgcm91dGluZSBmYWNpbGl0YXRlcyByZWN5Y2xpbmcgYW5kIGZvc3RlcnMgcmVzcG9uc2libGUgaGFiaXRzLjwvcD4KPGgzPlN0ZXBzIGZvciBFZmZpY2llbnQgUmVjeWNsaW5nIFVzaW5nIFN5bWJvbHM8L2gzPgo8b2w+CjxsaT4KPHA+PHN0cm9uZz5JZGVudGlmeSB0aGUgUGFja2FnaW5nIE1hdGVyaWFsPC9zdHJvbmc+PGJyIC8+TG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3ltYm9sOiBNb2JpdXMgVHJpYW5nbGUsIHJlc2luIGNvZGUsIG9yIGNvbnRhaW5lciBwaWN0b2dyYW0uIFRoaXMgaW5mb3JtYXRpb24gd2lsbCB0ZWxsIHlvdSB0aGUgY29ycmVjdCBjb250YWluZXIuPC9wPgo8L2xpPgo8bGk+CjxwPjxzdHJvbmc+Q2xlYW4gYW5kIFNlcGFyYXRlPC9zdHJvbmc+PGJyIC8+TWFrZSBzdXJlIHRvIGNvbXBsZXRlbHkgZW1wdHkgdGhlIHBhY2thZ2UgYW5kLCBpZiBwb3NzaWJsZSwgcmluc2UgaXQuIFJlbW92ZSBsaWRzLCBsYWJlbHMsIG9yIG90aGVyIGVsZW1lbnRzIG9mIGRpZmZlcmVudCBtYXRlcmlhbHMuPC9wPgo8L2xpPgo8bGk+CjxwPjxzdHJvbmc+RGVwb3NpdCBpbiB0aGUgQ29ycmVjdCBDb250YWluZXI8L3N0cm9uZz48L3A+CjwvbGk+Cjwvb2w+Cjx1bD4KPGxpPlllbGxvdzogcGxhc3RpY3MgYW5kIGNhbnMuPC9saT4KPGxpPkJsdWU6IHBhcGVyIGFuZCBjYXJkYm9hcmQuPC9saT4KPGxpPkdyZWVuOiBnbGFzcy48YnIgLz4gQ2hlY2sgdGhlIHN5bWJvbCBpZiB0aGVyZSBhcmUgZG91YnRzLjwvbGk+CjwvdWw+CjxvbD4KPGxpPgo8cD48c3Ryb25nPkF2b2lkIE1peGluZyBXYXN0ZTwvc3Ryb25nPjxiciAvPkRvIG5vdCBuZXN0IHNtYWxsIHBhY2thZ2VzIGluc2lkZSBvdGhlcnMgb3IgY29tYmluZSBkaWZmZXJlbnQgbWF0ZXJpYWxzLjwvcD4KPC9saT4KPGxpPgo8cD48c3Ryb25nPkNoZWNrIGZvciBTcGVjaWFsIExhYmVsczwvc3Ryb25nPjxiciAvPkZvciBjb21wb3N0YWJsZSwgcmV1c2FibGUsIG9yIG90aGVyIGNlcnRpZmllZCBwYWNrYWdpbmcsIGZvbGxvdyB0aGUgc3BlY2lmaWMgaW5zdHJ1Y3Rpb25zIHByb3ZpZGVkLjwvcD4KPC9saT4KPC9vbD4KPGgzPlJldXNlIGFuZCBXYXN0ZSBSZWR1Y3Rpb248L2gzPgo8dWw+CjxsaT5Qcmlvcml0aXplIHRoZSB1c2Ugb2YgcmV1c2FibGUgcGFja2FnaW5nIHdoZW5ldmVyIHBvc3NpYmxlLjwvbGk+CjxsaT5SZWR1Y2Ugc2luZ2xlLXVzZSBwYWNrYWdpbmcgYnkgYnV5aW5nIGluIGJ1bGsgb3Igb3B0aW5nIGZvciBzdXN0YWluYWJsZSBvcHRpb25zLjwvbGk+CjxsaT5SZXVzZSBiYWdzLCBqYXJzLCBvciBib3hlcyBiZWZvcmUgcmVjeWNsaW5nIHRoZW0sIGdpdmluZyB0aGVtIGEgc2Vjb25kIGxpZmUgYXQgaG9tZS48L2xpPgo8L3VsPgo8aDM+UmVzb3VyY2VzIGFuZCBHdWlkYW5jZSBmb3IgVW5jZXJ0YWludHk8L2gzPgo8dWw+CjxsaT5DaGVjayBtdW5pY2lwYWwgY2xlYW4gcG9pbnRzIGZvciB3YXN0ZSBvdXRzaWRlIHRoZSB1c3VhbCBzeXN0ZW0uPC9saT4KPGxpPkdldCBpbmZvcm1lZCB0aHJvdWdoIG11bmljaXBhbCBndWlkZXMsIG9mZmljaWFsIHdlYnNpdGVzLCBhbmQgcmVjeWNsaW5nIGFwcHMuPC9saT4KPGxpPlJlbWVtYmVyIHRoYXQgR3JlZW51c28gcGFja2FnaW5nIHByb3ZpZGVzIGNsZWFyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYXRlcmlhbCBhbmQgY29ycmVjdCByZWN5Y2xpbmcuPC9saT4KPGxpPklmIHVuc3VyZSBhYm91dCB0aGUgc3ltYm9sIG9yIHdhc3RlLCBjaGVjayBvbmxpbmUgcmVzb3VyY2VzIGZyb20gbXVuaWNpcGFsaXRpZXMgb3Igd2FzdGUgbWFuYWdlbWVudCBwb3J0YWxzLjwvbGk+CjwvdWw+CjxwPkVtYnJhY2luZyB0aGlzIGRhaWx5IHByb2Nlc3Mgd2l0aCBhdHRlbnRpb24gdG8gc3ltYm9scyBoZWxwcyBvcHRpbWl6ZSBwYWNrYWdpbmcgcmVjeWNsaW5nLiBDb3JyZWN0IGlkZW50aWZpY2F0aW9uLCBzZXBhcmF0aW9uLCBhbmQgcmVkdWN0aW9uIHBvc2l0aXZlbHkgaW1wYWN0IHRoZSBtYXRlcmlhbCBjeWNsZSBhbmQgZW52aXJvbm1lbnRhbCBjYXJlLjwvcD53A3NldHckMmVmMzU0MGYtYTFiZi00YWJmLWExYzUtNzA1NzNhYzMxMzVhdwxjb3JlL2hlYWRpbmd9AXckMWIyMmJmYTItYzQwMC00NDlhLTk4YzYtNjMwMGRkOTkwOTg4eHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDJhNTA1YzUxLTJmZDItNGZiYi1hMDBmLTJiMWE3OWViMThkZnh3DGNvcmUvaGVhZGluZ30CdyRkMDhhZDdmOS1hZWU3LTRjYzEtYmZlYS1kZDk1MGZlMjdhNjN4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckOTFlNTQ2ZjYtNzVkYy00Nzg4LWIxNzAtOGE0Zjk4N2Q4YTRieHcMY29yZS9oZWFkaW5nfQN3JDFlMWMzZmQ0LTk2ODItNDg3YS05ZWIxLWRhZWU0MTViNTI5N3h3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRjYWJiZTRkMS1jODJmLTQ0YjctOTcwZi05YjNhZDcxNTUyZWV4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckZTM1ODM0ZDctM2FmMy00ZDNlLTg4YjQtZTAzZWNlMzkwYjcyeHcMY29yZS9oZWFkaW5nfQN3JGRjYjg1YzA1LWZhNDYtNDgyNi1hYzBhLTE1NDEzMjUzZTUxYXh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ5OTQwNzdlYy1lN2IzLTRlMmItYTdmMC03MTI4NGQ1OTI5Njl4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckODE0NDAxNzItMmQxNy00ZjEzLTk3OTEtM2M4MTA3ODBkMDI2eHcMY29yZS9oZWFkaW5nfQJ3JGU2NmYxMTVhLWI5YWItNGFjZS1iNTk2LWYwZGRhZWQ1MzJiOHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQyMTQyZTMxOS05YTdjLTRlNTEtOWU4Yy1kODA2ZTE5OWIxNGZ4dwxjb3JlL2hlYWRpbmd9A3ckOTk2ODBhMmYtYTYzMC00ZWJhLWIzZDEtZGQ2MDIzMDg4YzcxeHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JGE5MzY0MDk1LTFkYzktNGI5Mi05ZWE1LTI5NDdjYzcxNTMxZnh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRhNzNiM2IxOS1iMzQ0LTRmMGYtYjZjZC0zZWU1NWIwMGQ1OTN4dwljb3JlL2xpc3R5dwB3JDc5MjkxN2QzLTI2YTAtNDA2OS05NDE3LWQ3NjNiNzg5NDVhMHh3DmNvcmUvbGlzdC1pdGVtdyQyYjRhYTQyOS0zMGE4LTQ0YjQtODAyNi05Y2NlODNmNjgwY2N4dw5jb3JlL2xpc3QtaXRlbXckYWQzZGY1MWMtYjZkMC00OGM2LTkwNDAtZjZjNGI5NDUwZjdkeHcOY29yZS9saXN0LWl0ZW13JDUyMWRhOTdiLWI2NzAtNDJhZC1iNTMxLTA1OWI2NGIwZjVhN3h3DmNvcmUvbGlzdC1pdGVtdyQyNGI1NTRkMS1iOTQ5LTQ4ODYtOTliNS03MjRjNTkwMmU1Y2N4dw5jb3JlL2xpc3QtaXRlbXckNDE3YmJkMGUtNzQ1Zi00MTI5LTg1YTgtZDQ4YWVkZjRhMzk1eHcOY29yZS9saXN0LWl0ZW13JGU4NzkwMDYyLWI1ZWYtNGVjYi05YzgzLTNiNjJlY2ZjNWRkYnh3DmNvcmUvbGlzdC1pdGVtdyRmMDhkMmEyNC0xZWMyLTQ1YjEtOGM3NC02NjA4OTUxMjBjNDJ4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckNGEyZWRjMzUtYTRkMS00ZTM2LWEzNjUtYWVlNWNhMTlhNTZkeHcJY29yZS9saXN0eXcAdyQ2NjViNmQ4NS1lNjZkLTQ5OTctYjNmYy0wNjgwMmFjYWNiNzd4dw5jb3JlL2xpc3QtaXRlbXckMWZiMjA3YjAtOTE3Ny00ZGE3LWE4NmEtYjA5ZDc1ZmRlYzUzeHcOY29yZS9saXN0LWl0ZW13JDYwOTFjZDdiLWJkYTQtNGE2Ny04M2YwLTM1NzU1YzI5ZmM2N3h3DmNvcmUvbGlzdC1pdGVtdyRlNTAyNmZhYi0wMGEwLTRjYjYtYTNhZi1mMWFhYjNmMDYzMTd4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckYjNmNmM0MDMtNDYwMy00N2JiLTg1MTctZTIwNDY3YjJiNTIzeHcMY29yZS9oZWFkaW5nfQN3JGNjNTlmYjQ2LTkwZDEtNDk5MS1hN2FkLTA1MGU2YjgzODQzY3h3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ2Y2M3MzkxZC01ODc4LTQ4MDYtOTA5Ny1hYzNiYmM5YzBlODJ4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckYTJmZjIyNWItMWY1MS00Y2U3LThjOGQtMjc4MThlNTAwZjA0eHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JGFlZjc4ZWE4LTY2MWMtNDk4Ny05MmM0LWY3MWJjMGNlMjM1Mnh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRiM2FjMDMyOC01ZjA0LTRmZWUtOWZkMC1hMDUxZDBmMjQxMDl4dwxjb3JlL2hlYWRpbmd9A3ckOTJmN2Q4NTAtMWZiOC00NDQ2LWFlNjUtMjE0NjFmODk4ZGYweHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDYyMGU4YzY5LTc4MTMtNGIwOC05ZjRjLTJlNmFkMzExZDk2NXh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ2ZmVmMjkzMi1kZjZhLTQ4Y2ItOTgwNC01NDMxYjllMWRjMzR4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckZDIyYmFmYTctMjM5OS00MTY2LWFhZTEtNjBhZTZjZjZiZGM0eHcMY29yZS9oZWFkaW5nfQN3JDM3NTMxNWQ1LWFjYmQtNDYzYi1iZTViLTNiMWRmMWJlYWRmM3h3CWNvcmUvbGlzdHl3AHckNWU2NDEyYjAtMTAyZi00MWY4LWE0OGMtZDdmZDZiZDI5YWIyeHcOY29yZS9saXN0LWl0ZW13JGM5YWQxNDJmLThmNDktNGZlZi04MzUxLTk5MDkwNzZkZjcwN3h3DmNvcmUvbGlzdC1pdGVtdyRiMDU0N2FlMy1kNzAwLTRiOTUtYWI3NS00NWFlMzY0Y2E1NmZ4dw5jb3JlL2xpc3QtaXRlbXckZDU4YTI5NWMtZmFiNy00ZDk5LTg1ZjItMTVhMGQ4ZjhjOTA4eHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDRiYjk3MjQ3LWIyYjEtNGNjYS05MmU2LWM3OWYxMzRkMmMzMXh3DGNvcmUvaGVhZGluZ30CdyQwYmQzZDJmZi01ZjQxLTQ5N2EtYTMyZS1jZjk1OGY1NTE2MGN4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckYTBjM2UzNzEtNmE0My00M2FiLThmODEtNDBjM2FiZThiMzJkeHcMY29yZS9oZWFkaW5nfQN3JGI5NDUxNzUwLWFlOWUtNDk4ZS05ODE4LWJlZTJhNzZmYTE0OHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ1ZGQ2NjU0NC1kODhhLTQwZmEtOGFlZS0zZGNiODcwMGE2YTF4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckOGY1NzVkMDktM2MzNi00YzE5LTlkNzctODlmY2MxNDZhOTgxeHcMY29yZS9oZWFkaW5nfQN3JDA2YTJiMTFhLWI5ZjEtNDU4OS1hOTk4LWNiYmUzMWFlOTRlZHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ3ZWNkMDM0Yy0zNzljLTQ3MmMtODVjYi0yYzZhZmY0NTEzYWR4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckODg5NTAzZGQtYWIxNi00YWFlLWFkYjEtOTU0NWRkZjQ5YzQ1eHcMY29yZS9oZWFkaW5nfQN3JDg1NGJiYzg0LTFiZjUtNDQ1Ny05NDdhLTRiNmZlY2Y2MmJjNnh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQzOTg4OTFmNi1mM2JiLTQ4M2YtYjY3ZS0xNDZhNDdjMTQyNWN4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckZjIzN2ZiMDctNDAxNS00MzU1LTliZDMtYmNiNzU0NzdmYTNleHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDVmNmVjOTE2LWQ1YzUtNDUzYi04MzhmLTExNWQxMzMyNTExYnh3DGNvcmUvaGVhZGluZ30CdyRkMTI5OTY3OC01NTM4LTQ0ODgtODkzYy03Mjk0OGIzMGI1NWV4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckZjM4Y2FkZDYtOTY2ZC00NjI5LWFkMjktNTU3NWUxNTA4OGYweHcMY29yZS9oZWFkaW5nfQN3JDlmYTNjYmMyLTRjYTUtNDEwZS04ZGI2LTgzNGU2ZmE0MzgwN3h3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyRhYzU2MGRjYy1kZDAwLTRlNTAtOGEwYS00ODFiYTc3N2YxYmN4dwljb3JlL2xpc3R5dwB3JDg1OTVjOTZiLTNmZTgtNGZmOS04MGMyLTdjNDZhODc5ZTc5Znh3DmNvcmUvbGlzdC1pdGVtdyQzNzFlMTJhOC03YWRhLTQ2NDktYmM1YS05ODJkOWRmNTcwNTN4dw5jb3JlL2xpc3QtaXRlbXckOWMxYTljYzEtOTlmMi00ZmVlLWJhMzctZjQwOWJhOWJlZmIxeHcOY29yZS9saXN0LWl0ZW13JDI3ZDM1YjA3LTk1OGYtNDBkMC1iZWFiLTVkMmZkMWQxM2ViNnh3DmNvcmUvbGlzdC1pdGVtdyQ0NzRiNGRhZS1mOWM4LTQ4MWYtYjQ3NC02ZWZhMGIwY2FiZWZ4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckMjljOWRkNDEtMDFmNy00MDdiLWFjYzYtMTRjNzJmYmFiOWM0eHcMY29yZS9oZWFkaW5nfQN3JDE4NzRmYzhmLWQ3ZGUtNGZiNy04MzE1LTIwNGIzM2I1NmM2MHh3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQ3M2M2ODA5ZC02ZDZiLTQzYjAtOWUzOC1mNTY1ZjllNDQ4YmZ4dwljb3JlL2xpc3R5dwB3JDY5YTAzZTJlLWYyYzQtNDU5My04N2ZiLWIxMWRkNGE5MTMxMnh3DmNvcmUvbGlzdC1pdGVtdyQ3MzkwNDU0My00N2FlLTQ0NzQtYWMwNC04MDcyNDQ5YTE3Nzd4dw5jb3JlL2xpc3QtaXRlbXckZDUyNWYwZjAtNzc1Yi00ODg4LTkyMWMtNjE5ODhlYmU4ZTY2eHcOY29yZS9saXN0LWl0ZW13JDA5YmUxNWZjLTg0MjEtNGExMC1iNmE4LTNlY2MxN2JkYzc3ZHh3DGNvcmUvaGVhZGluZ30DdyQ3ZTcxMWUwNi1jMjIxLTQyMWQtYmU4My02Zjg5ZTliNDllOTd4dwljb3JlL2xpc3R5dwB3JGVlZWE2YmZjLTJlNGMtNGFkOS1iMWM5LTI4MWQxNGM1MDg4M3h3DmNvcmUvbGlzdC1pdGVtdyRmMDkxODhiNy1jZTk0LTRjYTQtOGQ5MC1mMjU5NzM2ZDljNjd4dw5jb3JlL2xpc3QtaXRlbXckYTMyNjYxOGEtYmZlMi00MmQyLTk4ZGEtNjE3N2JhZmZiZjQyeHcOY29yZS9saXN0LWl0ZW13JDI3ZDdjMjc0LTJiMGUtNDkzOS04ODY4LWI3MGZkMzg4YmU1NXh3DmNvcmUvbGlzdC1pdGVtdyRhMGQxNjA4Zi0yN2ZkLTRhYTQtODg1MS00ZDMwMDYxMTc3MGN4dwxjb3JlL2hlYWRpbmd9A3ckMjdiNWQ5NmEtZGJjMy00YmYxLTkwOGQtMmRlMTViYzQ3ODY1eHcJY29yZS9saXN0eXcAdyQ0NDcyYzM0NC03MjI0LTQ1YzAtOTRlYi03M2VkNzFjZDZkZWV4dw5jb3JlL2xpc3QtaXRlbXckN2Q4YzU2ZGMtMjIyMi00ZmNmLTg5MjQtYTViMzI3YTVkNGY4eHcOY29yZS9saXN0LWl0ZW13JGU3MDE0ZDE4LWM0YTAtNDc0MS1hMzA4LTFkZThhNWFkNGM3N3h3DmNvcmUvbGlzdC1pdGVtdyRjOWZhOWFiNS0wZDk4LTQ0ODctODBmYy0yNzhhNjJkZTEyZTB4dw5jb3JlL2xpc3QtaXRlbXckNzVjMDQyZTktMzZmNi00MTFiLTlmMDYtNzg5MzhjM2JhZWQ0eHcOY29yZS9saXN0LWl0ZW13JDczNzkzZGM4LTYwN2MtNGQyOS05MDgwLWI4MTliNmUyZmUzM3h3DmNvcmUvcGFyYWdyYXBoeXc5RXNjcmliZSAvIHBhcmEgZWxlZ2lyIHVuIGJsb3F1ZSBvIC8vIHBhcmEgdXNhciBDb250ZW50IEFJdyQzZjk2ZmFkNy05M2RhLTRiMjgtOWUzZS1lZjA2N2UzYTg5Mzl4dwxjb3JlL2hlYWRpbmd9AnckMjE4NTIwYzEtYmNkZC00NDJkLWI5ZjctOThlZTM5Zjc3M2EzeHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JDk4MmI0MDlhLTJiODgtNGIzMi04ODVlLWY0OTU4Yjk2NGMzNXh3DGNvcmUvaGVhZGluZ30DdyRjMTk2NTcyNC1lMDY3LTQ5ZmMtOTQxMi1hZGJlNjI2NzI0Mzh4dwljb3JlL2xpc3R4dwB3JGQyOGQ5MzVkLWM0ZTEtNDI5Yi05ODY3LTZlMzVhMTk4MjY0MHh3DmNvcmUvbGlzdC1pdGVtdyQ0YjVhN2VjZi0wNDg0LTRlZjItYmJkMC1kMjEyZDUyMGM2OTZ4dw5jb3JlL2xpc3QtaXRlbXckM2VmNTEzOTAtY2IzMS00Y2QzLTg4NzktOGIyNjUzMmI1YTEyeHcOY29yZS9saXN0LWl0ZW13JDAzM2VhZTU2LTc5YjMtNGI5NC1hOWNhLWJmYTVkYThjZjdiM3h3CWNvcmUvbGlzdHl3AHckZDNkNTQxOWItNGJlNC00YWQ4LWJhZGItNTk0ZTY4YmU3NjA4eHcOY29yZS9saXN0LWl0ZW13JGJjMTI3YTM0LWU5MjUtNDMxMC05NTZmLTIxZWJhMTZiZjYyNHh3DmNvcmUvbGlzdC1pdGVtdyRkODMyZTI5ZC1iNjZkLTQxOGItODIwYS1iOWFjYzM0NDFhMmF4dw5jb3JlL2xpc3QtaXRlbXckNTRlYmI4Y2QtY2UzOC00MTMxLTljNmMtNGZlYjU4N2U1NWQweHcJY29yZS9saXN0eHcAdyQ5OWU2ZWNiOC1hMmU4LTQzYTktODBlZS0wNjBmNmNhNjMwMTh4dw5jb3JlL2xpc3QtaXRlbXckYjBkMWE1MDQtM2M5NS00NTg4LWJkNmQtNjk3ODg4NjQ2ZWVkeHcOY29yZS9saXN0LWl0ZW13JDlhNWI1NDQ3LWI3Y2EtNDAyYy04YTIxLWZhMWIyOGQ2MGVjZHh3DGNvcmUvaGVhZGluZ30DdyQwZGYyMmMzNy04YTBmLTQ1OTctYTRiZC05ZTM5YTVlOGNmMWJ4dwljb3JlL2xpc3R5dwB3JDg3YmVkZmIzLTBmZDItNGY1NS05YmY2LTZhMmM1YjAxY2NlYnh3DmNvcmUvbGlzdC1pdGVtdyQ2NjZiZDZiMy0wZmQ5LTRmMWEtYTUyZi0wOWJiM2QyMjYzMjB4dw5jb3JlL2xpc3QtaXRlbXckMGMwM2UwYTUtYzhiNC00YWE0LWFiOGUtMzdiZjcxOTFlNjRleHcOY29yZS9saXN0LWl0ZW13JGJkMmNkOGJmLWQ4NjEtNDljMC04ZDdiLTVmODg1YzQ0MmE2Nnh3DGNvcmUvaGVhZGluZ30DdyRjMzcxYjI5ZC04ZDY0LTQ3YWQtYTc0Ni1lYjVmZTFjNTMyNWZ4dwljb3JlL2xpc3R5dwB3JGZhM2RhYmY4LWUwYjAtNDg4ZS1hOGJiLWYyNzNlZGM0YWNkZnh3DmNvcmUvbGlzdC1pdGVtdyRhZWVmNGYxNi1mNzgwLTRjMWYtYWUzMi1kMzdlMzEyNDZkOTh4dw5jb3JlL2xpc3QtaXRlbXckZTAzMjA4MTktNjc2Mi00NzQxLWI1ODEtYzUxZDQ0Mzg4M2I5eHcOY29yZS9saXN0LWl0ZW13JDhmNGZiZWI3LWIwOTQtNGE3Zi1hYTBmLThmN2Y1MWYxNzM0OHh3DmNvcmUvbGlzdC1pdGVtdyRiOTY5ODhkYi0wOWQ4LTRjOTAtYTI4ZS1hMmM5MWYzZDA3ZTF4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXckOTc5ZjA2YWYtOTk1NS00YzAyLTllZTUtZTlhZTVhZmRiMjk4eHcOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JGYxMTQxMjIxLTJlNjQtNGJmZC1iMjRlLTlhZGYwMTJjMGU1ZncOY29yZS9wYXJhZ3JhcGh5dzlFc2NyaWJlIC8gcGFyYSBlbGVnaXIgdW4gYmxvcXVlIG8gLy8gcGFyYSB1c2FyIENvbnRlbnQgQUl3JGU5Y2VlNWEyLTQzYjYtNGNhYi04MDExLTExZDI4YTQ4MGI0Znh3CmNvcmUvaW1hZ2V3AH2xngR3Mmh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nLz9hdHRhY2htZW50X2lkPTM0NzM3dzxodHRwczovL3d3dy5ncmVlbnVzby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMTA0MjgtNC5qcGd3BGZ1bGx3BG5vbmV3Rmh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8xMDQyOC00LTEwMjR4MTAyNC5qcGd3BWxhcmdld3hEaXNjb3ZlciB0aGUgbWVhbmluZyBvZiByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgYW5kIGxlYXJuIGhvdyB0byBzb3J0IHdhc3RlIGNvcnJlY3RseSB0byBwcm90ZWN0IHRoZSBlbnZpcm9ubWVudC53AHc8aHR0cHM6Ly93d3cuZ3JlZW51c28uY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzEwNDI4LTQuanBndwRmdWxsd3hEaXNjb3ZlciB0aGUgbWVhbmluZyBvZiByZWN5Y2xpbmcgc3ltYm9scyBvbiBwYWNrYWdpbmcgYW5kIGxlYXJuIGhvdyB0byBzb3J0IHdhc3RlIGNvcnJlY3RseSB0byBwcm90ZWN0IHRoZSBlbnZpcm9ubWVudC53Rmh0dHBzOi8vd3d3LmdyZWVudXNvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8xMDQyOC00LTEwMjR4MTAyNC5qcGd3BWxhcmdldyQ2ZDEzMjBlMy04N2I0LTRlZTktOGVlNC1mODRkNThkOTY3YmJ4dw5jb3JlL3BhcmFncmFwaHl3OUVzY3JpYmUgLyBwYXJhIGVsZWdpciB1biBibG9xdWUgbyAvLyBwYXJhIHVzYXIgQ29udGVudCBBSXUBfa0BdQJ9rQF9rgF1AX2PCnczcmVjeWNsaW5nLXN5bWJvbHMtb24tcGFja2FnaW5nLWFuZC10aGVpci1pbXBvcnRhbmNldxFyZWN5Y2xpbmctc3ltYm9sc3cTMjAyNi0wNC0xNFQxNDozNDowMHtCedi\/v+jQAH2\/htOdDHcTMjAyNi0wNC0xNVQxNDozNDowMHcTMjAyNi0wNC0xNVQwMjozNDowMHcTMjAyNi0wNC0xNVQxMDozNDowMHcTMjAyNi0wNC0xNVQxMDo1NzowMHcGZnV0dXJlAb\/D6Y4GGAEBTdprHwAEAQEHAVGeAjeWV5oRBwACfAIBAQXnBtAD9xmUA6UGlgGCJ7QDoiWaARiCARa\/G+oCnALVBgDIBgCtAZoCnwIC\",\"updateId\":953083258}","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":[109,110],"tags":[655],"class_list":["post-34640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sustainable-hospitality","category-sustainable-products","tag-recycling"],"_links":{"self":[{"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts\/34640","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=34640"}],"version-history":[{"count":2,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts\/34640\/revisions"}],"predecessor-version":[{"id":34746,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/posts\/34640\/revisions\/34746"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/media\/34675"}],"wp:attachment":[{"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/media?parent=34640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/categories?post=34640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.greenuso.com\/blog\/wp-json\/wp\/v2\/tags?post=34640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}