{"id":1127,"date":"2025-08-09T22:13:11","date_gmt":"2025-08-09T22:13:11","guid":{"rendered":"https:\/\/bagua-zhang.eu\/?page_id=1127"},"modified":"2026-04-12T08:09:17","modified_gmt":"2026-04-12T08:09:17","slug":"martial-arts-networks-in-northern-china-a-journey-into-the-shadow-world-of-the-late-19th-and-early-20th-centuries","status":"publish","type":"page","link":"https:\/\/bagua-zhang.eu\/?page_id=1127&lang=en","title":{"rendered":"Martial arts networks in northern China"},"content":{"rendered":"\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">Between government offices and backyards, between imperial commissions and gambling dens: in the late 19th and early 20th centuries, northern China was crisscrossed by an invisible network of martial artists, officials, secret societies, and underworld figures. They were escort leaders, yamen runners, temple guards\u2014and sometimes all of these at once. This article paints a portrait of a parallel world in which fist techniques were just as valuable as an official seal.<\/p>\n<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"468\" src=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/biaoju.jpg\" alt=\"\" class=\"wp-image-1116\" srcset=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/biaoju.jpg 624w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/biaoju-300x225.jpg 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Northern China in the final decades of the Qing Dynasty was a country in turmoil. It was a time when imperial authority was faltering, famines and uprisings were shaking the country, and foreign powers were expanding their spheres of influence in the port cities. In this environment, martial arts were not an elegant pastime for wealthy city dwellers, but a tool for survival \u2013 and for many, a ticket to a dangerous but lucrative network of power, money, and influence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Back then, people didn&#8217;t train in gyms or clubs. Martial arts took place in backyards, temple complexes, dusty marketplaces, and improvised training grounds on the outskirts of the city. Those who mastered a recognized technique could hire themselves out as escort guards, enter the service of the local administration, or work as enforcers in the port districts. The boundaries between legal authority and the underworld were as fluid as the Yellow River in the rainy season.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There were people who carried out arrests on behalf of the magistrate in the morning and used the same fists for a smuggler or gambling boss in the evening. These dual roles were not the exception, but the norm. In a region where the state was weak and distances were long, martial arts networks filled the gaps in the security and administrative system \u2013 often in their own unique way.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The northern provinces such as Zhili (today&#8217;s Hebei with Beijing and Tianjin) and Shandong were particularly predestined for such structures. This is where major trade and transport routes crossed: the Grand Canal, the coastal routes, and the roads connecting the capital with the ports. Markets, caravan stations, warehouses, and meeting places for armed men sprang up at these junctions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Temple courtyards became places not only for prayer but also for training. Roadside inns offered not only soup and a bed but also discreet back rooms where orders were given. Large festivals provided cover for secret agreements, and master-disciple relationships stretched invisible threads between villages, towns, and entire provinces.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The martial arts networks of that time were complex structures. They connected merchant guilds, religious brotherhoods, local militias, and administrative officials. A master could be a village elder, a yamen employee (official), and a member of a secret society all at the same time. His students, in turn, brought contacts from various social strata: farmers, soldiers, smugglers, officials\u2014all found their place in this network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These networks were not only social communities, but also economic machines. They thrived on escort services, market protection, debt collection, and occasionally smuggling. For many, martial arts were not just a tradition, but a business model \u2013 a tool to guarantee security and income in uncertain times.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The history of these networks is much more than just a footnote in Chinese martial arts. It explains why certain styles emerged in northern China, how they spread, and why some masters became legends while others remained in the shadows. It also shows how closely violence, administration, and the underworld were intertwined \u2013 and how much martial arts were part of the social and political power game at the time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the following chapters, we take a look behind the scenes of this world: at the political framework, the composition of the networks, how they functioned, their connections to secret societies, and some of the most famous protagonists such as Dong Haichuan, Zhang Zhaodong, and Wang Xiangzhai.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To understand the martial arts networks of the late 19th and early 20th centuries, one must imagine the world in which they emerged: an empire in its final stages, a society in transition, and an administration that in many regions was little more than a thin veneer over local autonomy.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By the end of the 19th century, the Qing dynasty was no longer the unchallenged power it once had been. Decades of internal uprisings \u2013 from the Taiping Rebellion to the Nian Rebellion \u2013 had bled the empire dry. Defeats in the Opium Wars and the First Sino-Japanese War (1894\u20131895) had exposed the military&#8217;s weakness and forced the country into unequal treaties.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"513\" src=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/Cixi.webp\" alt=\"\" class=\"wp-image-1120\" srcset=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/Cixi.webp 684w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/Cixi-300x225.webp 300w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In many provinces, imperial authority existed only on paper. Local officials had to maintain order, collect taxes, and secure trade routes with limited resources. This was often only possible with the help of local forces willing to use violence \u2013 and this is where the martial arts networks came into play.<\/p>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The heart of local administration beat in the Yamen, the official residence of the district magistrate. This is where taxes, jurisdiction, and police duties converged. However, the yamen rarely had enough trained personnel to consistently enforce the laws.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why they relied on yamen runners \u2013 officials who carried out arrests, collected taxes and, if necessary, also collected debts on behalf of the magistrate. These men were not always officials in the modern sense, but often recruited fighters with good local connections. In practice, this meant that they were working on behalf of the state and on their own business at the same time.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zhili (now Hebei) and Shandong were particularly sensitive:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Zhili was home to Beijing, the capital, and was the political heart of the empire. At the same time, it was located on important trade and military routes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Shandong was agriculturally rich, but also characterized by coastal trade and foreign concessions \u2013 a gateway for Western traders, missionaries, and the military.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In both provinces, the combination of strategic importance, high economic activity, and political instability meant that local power networks \u2013 including martial arts groups \u2013 were able to exert enormous influence.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For merchants, farmers, and craftsmen, armed protection was not an option but a necessity. Robberies on country roads, attacks by rival village communities, and extortion by gangs were part of everyday life. Those who could afford it hired guards \u2013 often from the same networks that were also in the service of the yamen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This mixing of public order and private use of force was not an abuse in the modern sense, but an integral part of the system. Without these \u201csecurity entrepreneurs,\u201d many markets would not have functioned and many caravans would not have reached their destinations.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All these factors\u2014weak central power, flexible local administration, high demand for protection, and the strategic location of northern China\u2014created the ideal breeding ground for complex, multi-layered martial arts networks. They filled the gaps that the state could not or would not close and became an integral part of the social fabric.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The martial arts networks of northern China in the late 19th and early 20th centuries were not a homogeneous block. They consisted of people who had very different professions, social positions, and life stories \u2013 connected by a common asset: the ability to use violence and move in a milieu where loyalty, reputation, and networks were more important than official titles.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">The Yamen Runners stood at the interface between administration and the street. Officially, they were assistants to the magistrate, responsible for arrests, tax and debt collection, or the delivery of official instructions. Unofficially, many used their position to engage in side businesses: collecting protection money, working as private bodyguards, or taking on assignments from the underworld.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"730\" src=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/1600px-Yamen-sitzung-1024x730.jpg\" alt=\"\" class=\"wp-image-1112\" srcset=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/1600px-Yamen-sitzung-1024x730.jpg 1024w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/1600px-Yamen-sitzung-300x214.jpg 300w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/1600px-Yamen-sitzung-1536x1094.jpg 1536w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/1600px-Yamen-sitzung.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Yamen (Wikipedia)<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Some of these runners were trained fighters, others had learned their skills on the streets. Their access to information \u2013 who owed money to whom, where wanted persons were staying \u2013 made them sought-after partners for both merchants and secret societies.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another important group were the men of the Biaojus, the escort agencies. They accompanied merchant caravans, transported valuable goods, and guaranteed safety on often unsafe routes. Their work brought them into contact with all kinds of armed groups: bandits, militias, competing escort companies \u2013 and also corrupt officials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Biaojus were often closely associated with martial arts schools because they trained their men in close combat, weapon use, and tactics against raids. Some famous masters, such as Dong Haichuan later on, used such contacts to expand their networks.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In port cities such as Tianjin, another group played an important role: dockworkers, porters, and guild guards. These men controlled not only the flow of goods but also access to certain workplaces. Those who had influence here could paralyze entire supply chains\u2014or secure them in exchange for payment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many port guards belonged to informal martial arts groups that defended their neighborhoods or protected their guilds from competition. In a port district, it was common to see a former soldier, a fisherman, and a caravan guard training together in the same training hall.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The backbone of the networks was the master-student relationship. A master was not only a teacher, but often also a job broker, a guarantor of protection, and a door opener to contacts in other cities. Students owed him not only respect, but often also allegiance in practical matters \u2013 from escort assignments to political favors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These relationships often spanned generations. A student could become a master himself years later and still show loyalty to his original teacher or his family. This created networks that connected villages, cities, and provinces.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These networks had no club structure, no membership cards, and no central statutes. They were loose but robust networks based on trust, common interests, and a clear hierarchy. Anyone who wanted to belong had to prove themselves \u2013 on the mat, on the street, and in their dealings with the right people.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The martial arts networks of northern China functioned like multi-layered service companies \u2013 only without a clear boundary between legal and illegal. They offered protection, organized transportation, gathered information, and could also use violence if necessary. Their strength lay not only in the fists of their members, but also in their structure: mobile, adaptable, and networked across many locations.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secret signs, specific greetings, or phrases helped members identify each other. This allowed an escort leader in Shandong to recognize a dock worker in Tianjin as a \u201cbrother in the circle\u201d without outsiders noticing.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You couldn&#8217;t just join these networks by signing up. New members were almost always introduced by someone who was already part of the network. The first step was often training with a recognized master. Those who showed not only talent but also loyalty were recommended to others.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The success of a network depended on exercising power without attracting unnecessary attention from the authorities or rival groups. Too much open violence could provoke a punitive expedition by the yamen or the intervention of a secret society. That is why diplomacy was just as important within these structures as martial arts. An experienced master could settle conflicts before they escalated \u2013 often through personal meetings where tea, polite phrases and subtle threats flowed together.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although many members were there for the income, money was not the only currency. Honor and reputation determined who got the good jobs. Anyone who botched an escort job or cheated a client risked not only their place in the network, but possibly their life.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A strong reputation, on the other hand, could last for decades. Some masters still received gifts or favors in their old age from merchants whose grandfathers they had once protected.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A well-known master or experienced fighter often did not even need to strike \u2013 his name alone was enough to avoid conflict. Merchants preferred to pay protection money to someone with a feared reputation rather than risk provoking their wrath. Rivals thought twice before messing with a man who was rumored to have remained undefeated in a dozen fights.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This reputation was built not only through victories in combat, but also through behavior outside the training hall: generosity towards students, honor in business, keeping promises. A single betrayal could destroy everything.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/12000975_10153054678132411_8023825517908560044_o-1024x768.jpg\" alt=\"\" class=\"wp-image-1114\" srcset=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/12000975_10153054678132411_8023825517908560044_o-1024x768.jpg 1024w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/12000975_10153054678132411_8023825517908560044_o-300x225.jpg 300w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/12000975_10153054678132411_8023825517908560044_o-1536x1152.jpg 1536w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/12000975_10153054678132411_8023825517908560044_o.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Li\u00fa Sh\u00ecji\u00e9 (\u5289\u58eb\u5091, 1864\u20131930) an escort guard working for T\u00f3ngx\u00ecngg\u014dng (\u540c\u8208\u516c), <br>Tongxinggong Museum, Pingyao (Laurent Chircop-Reyes; Illegal Caravan Trade and Outlaw Armed Escorts in the Qing Dynasty: Critical Analysis of Two 18th Century Memorials Laurent Chircop-Reyes)<\/figcaption><\/figure>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Certain martial arts were considered particularly prestigious. Styles such as Baguazhang, Xingyiquan, or Tongbeiquan were known in northern China not only for their effectiveness but also for their exclusivity. Those who mastered one of these styles \u2013 and demonstrated this in performances or real-life confrontations \u2013 found it easier to enter high-ranking networks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many yamen runners and escort leaders used their skills to gain access to wealthy clients. A master who trained the bodyguards of a provincial official, for example, could be almost certain of receiving political backing in return.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The bond between master and student was often closer than that between business partners or even family members. A student who remained loyal to his teacher could count on getting work, accommodation, or protection when needed. Conversely, a master could exert influence in other cities through his students\u2014each well-placed student was like an \u201cinvestment point\u201d in the teacher&#8217;s social capital.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These bonds often lasted for generations. A grandson could still benefit from the relationships his grandfather had established as a student of a famous master.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a time without health or accident insurance, martial arts could actually mean the difference between life and death. Those who worked in dangerous professions\u2014whether as caravan leaders, dockworkers, or bailiffs\u2014had to reckon with robberies, fights, and spontaneous altercations. Physical fitness, quick reactions, and the courage to use force were not only personal advantages but also qualities that enhanced social status.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The martial arts networks of northern China rarely stood alone. They were embedded in a network of secret societies, religious brotherhoods, sects, and criminal syndicates, many of which had existed for centuries\u2014some with ideological roots, others purely profit-oriented.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In northern China, four structures in particular played a role:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 <strong>The \u201cBrotherhoods of the Green Forests\u201d (L\u00fclin)<\/strong> \u2013 loosely organized bandit gangs that hid in inaccessible regions such as mountains or forests and occasionally worked as mercenaries or escorts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 <strong>The \u201cHeaven and Earth Society\u201d (Tiandihui) <\/strong>\u2013 originally founded with anti-Manchu ideals, later often involved in smuggling, gambling, and protection rackets.Hongmen (\u6d2a\u9580) Originally emerging from the resistance against the Qing dynasty,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 <strong>The Hongmen<\/strong> <strong>(\u6d2a\u9580)<\/strong> retained a revolutionary aura. In the late Qing period, they were partly integrated into port and transport work in southern and eastern China, and partly involved in smuggling and gambling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 <strong>Green Gang (\u9752\u5e6b)<\/strong> Originally formed from boat crews on the Imperial Canal, it became a powerful force in Shanghai, cooperating with both the Kuomintang (KMT) and the foreign concession police. It controlled the opium trade, gambling, and protection money\u2014and also employed martial arts experts to enforce its control. Their influence extended beyond trade routes to Tianjin, connecting the north with the south.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These organizations had their own rituals, identifying marks, and initiation rites, and they often overlapped with martial arts schools \u2013 either because the masters themselves were members or because their students were recruited there.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sects with Daoist or Buddhist influences offered not only spiritual guidance but also a social safety net. Temples served as meeting places where people could discuss matters, train, or arrange assignments. Some of these groups mixed religious teachings with militant structures, such as the <strong>\u201cWhite Lotus Movement,\u201d<\/strong> which was repeatedly involved in uprisings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For many fighters, belonging to a sect was not incompatible with their work as yamen runners or escort leaders \u2013 it was an additional bond that ensured loyalty.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daoist sects such as the <strong>Longmen (Dragon Gate)<\/strong> School played a particularly important role. Their temples and monasteries were safe havens for travelers, merchants, and warriors. Anyone in Shen County who belonged to such a circle could rely on the same symbols, rituals, and codes in Shanghai\u2014and thus gain access to closed circles even without a formal recommendation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Temples as meeting places in urban areas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Historical studies show that in the late Qing period and during the Republic era, smaller Daoist and Buddhist temples were used for multiple purposes, especially in cities such as Shanghai and Tianjin:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 as places of prayer and pilgrimage,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 as meeting places for local guilds,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 as discreet meeting places for actors who did not want to appear in public.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Brian G. Martin (The Shanghai Green Gang: Politics and Organized Crime, 1919\u20131937, 1996) documents that the Green Gang used temples in Shanghai&#8217;s international concessions to hold meetings where KMT officials, union leaders, and underworld representatives came together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Frederic Wakeman Jr. (Policing Shanghai 1927\u20131937, 1995) describes how the French and international concession police were reluctant to enter such religious sites \u2013 a reluctance that made these places attractive venues for confidential meetings.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Certain criminal activities benefited directly from the skills of martial arts networks:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Smuggling \u2013 fighters knew the hidden routes and could protect convoys.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Gambling and opium dens \u2013 martial arts practitioners often acted as bouncers or enforcers here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Extortion \u2013 \u201cprotection\u201d against gangs was a lucrative business, and martial artists made the threats particularly credible.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">The close connection to the underworld meant that the same men who escorted goods during the day stood guard in a gambling house at night.<\/p>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">Not all networks operated solely for profit. Some secret societies cultivated ideological narratives \u2013 such as the return of the Ming dynasty or the fight against foreign powers. These ideas provided a moral justification for violence and helped to bind members together. In practice, the boundaries between ideology and business quickly became blurred: a \u201cpatriot\u201d could lead an anti-foreign demonstration in the morning and secure a smuggling route in the afternoon.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"300\" src=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/C3D05547-FE64-40DD-A947-38BD7341B9C5-200x300.png\" alt=\"\" class=\"wp-image-1110\" srcset=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/C3D05547-FE64-40DD-A947-38BD7341B9C5-200x300.png 200w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/C3D05547-FE64-40DD-A947-38BD7341B9C5-683x1024.png 683w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/C3D05547-FE64-40DD-A947-38BD7341B9C5.png 1024w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The connection between martial arts networks and secret societies was symbiotic:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 The fighters offered physical power, discipline, and local roots.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 The secret societies offered protection from state persecution, access to resources, and supraregional contacts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An experienced master could thus enjoy assignments and protection not only within his city, but in several provinces.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The beginning of the 20th century was a time of profound change for the martial arts networks of northern China. The political upheavals of those years \u2013 from the Boxer Rebellion to the fall of the Qing Dynasty and the Warlord Era \u2013 brought new opportunities, but also risks. Many of the old structures survived, but their functions and public perception changed dramatically.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The so-called \u201cYihetuan\u201d uprising was a key moment in the connection between martial arts, religion, and politics. The Boxer movement mixed local martial arts groups with spiritualist practices and a strongly anti-foreign, anti-Christian agenda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many martial arts networks sympathized with the Boxers, some providing fighters or logistical knowledge. However, the brutal suppression of the uprising by the combined forces of the \u201cEight-Nation Alliance\u201d destroyed many of these structures. In the years that followed, many fighters were under increased scrutiny, and the connection between martial arts and political agitation became life-threatening for some.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Xinhai Revolution brought an end to the Qing dynasty \u2013 but not to the structures of violence. On the contrary: during the transition period, many fighters took advantage of the power vacuum to strengthen their position. Some joined revolutionary militias, others offered their services to the new provincial governments, and still others sought protection from powerful local leaders.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The political fragmentation following the death of Yuan Shikai led to the rule of regional military leaders (warlords). These men often ruled their territories like private princes \u2013 and they had a great need for loyal, battle-hardened men. Martial arts networks offered an ideal recruiting ground for this.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During this period, some martial arts masters rose to become military instructors or even officers. Those who were skilled could gain great influence \u2013 those who were unlucky were drawn into endless skirmishes between rival warlords.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Parallel to this militarization, a countertrend began: the institutionalization and sportification of martial arts. Starting in the 1910s, public martial arts schools and associations emerged that focused less on the use of violence and more on physical culture and national pride.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There were several reasons for this development:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 The new republican government wanted to channel combative energy into controlled channels.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Foreign sports such as boxing and judo inspired modern training methods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Martial arts were promoted as a means of \u201cphysical renewal of the nation.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For some old networks, this meant the loss of their original function\u2014for others, it was an opportunity to camouflage their influence and become more publicly acceptable.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The networks that survived these upheavals had one thing in common: adaptability. They were able to transform themselves from armed escorts to sports teachers, from underworld figures to \u201cpatriots\u201d in the service of a warlord \u2013 or vice versa.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The three names Dong Haichuan, Zhang Zhaodong, and Wang Xiangzhai represent different generations and roles within the northern Chinese martial arts scene between the late 19th and early 20th centuries. They exemplify how masters from these networks operated, forged relationships, and exerted influence on their time.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dong Haichuan, widely known as the founder of Baguazhang, grew up in Hebei and came into contact with various local martial arts at an early age. A recurring theme in the traditions is his work as a tax collector or official, in some sources explicitly on behalf of the imperial court.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This position brought him into direct contact with local elites, but also with militant village militias and armed escort services. Anyone who wanted to collect taxes not only had to be able to fight, but also had to navigate the complex web of officials, village elders, merchants, and unofficial power figures.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dong apparently made clever use of these contacts: when he later came to Beijing, he gained access to high-ranking circles, including the household of Prince Su. Here, his reputation as a fighter was combined with the role of trainer for elite security forces \u2013 a position that could only be held by someone who enjoyed the trust of both the administration and military circles.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zhang Zhaodong from Tianjin, master of Xingyiquan and Baguazhang, represents the connection between Yamen work and the semi-private economy of violence. Besides his career as a martial arts teacher, he reportedly worked as a kind of bounty hunter on behalf of the Yamen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This activity involved tracking down fugitive criminals, collecting delinquent debts, and taking on delicate assignments that required physical enforcement. In doing so, he moved in the same circles as escort leaders, harbor guards, and underworld contacts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At that time, Tianjin was a hub for trade, foreign concessions, and smuggling routes\u2014ideal conditions for someone like Zhang, who combined martial arts and networking. His school was not only a training ground but also a meeting place for businesspeople, officials, and fighters. In this way, he established himself permanently in the city&#8217;s power landscape.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wang Xiangzhai, later founder of Yiquan, belonged to the generation that experienced the transition from the late imperial economy of violence to the republican martial arts culture. He grew up in Hebei, traveled across China as a young man, and sought out exchanges with well-known masters, including veterans from the escort and yamen scene.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These travels made him familiar with the remnants of the old networks as well as with the new structures of the republican era, in which martial arts were increasingly embedded in military training and public sports clubs. His ability to translate traditional techniques into a modern concept shows how the social capital of the old networks could be saved into the new era.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"394\" src=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/Xinhai_Revolution_in_Shanghai.jpg\" alt=\"\" class=\"wp-image-1118\" srcset=\"https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/Xinhai_Revolution_in_Shanghai.jpg 630w, https:\/\/bagua-zhang.eu\/wp-content\/uploads\/2025\/08\/Xinhai_Revolution_in_Shanghai-300x188.jpg 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-element-caption\">Xinhai Revolution (Wikipedia)<\/figcaption><\/figure>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The martial arts networks of northern China in the late 19th and early 20th centuries were more than mere associations of fighters. They were social institutions that operated in a blurred space between official administration, local self-organization, and criminal structures. Their members moved naturally between these spheres and used martial arts as both physical and symbolic capital.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whether as yamen runners, escort leaders, militiamen, or teachers, the men (and, in rarer cases, women) in these networks knew how to apply their skills in different contexts. They could work for a magistrate one year, a warlord the next, and shortly thereafter as instructors at a sports school.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This flexibility was crucial to their survival at a time when political orders changed rapidly and state structures did not function across the board.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A key element of their success lay in their ability to exercise power without provoking complete rejection by the population or the state. Many offered genuine protection, mediated conflicts, or guaranteed safe trade routes\u2014services that were not always provided by official authorities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the same time, the line between extortion, smuggling, and politically motivated violence was often blurred. These gray areas made the networks an indispensable but also ambivalent part of the social fabric.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the consolidation of the Republic of China and later the People&#8217;s Republic, the old structures were largely dissolved or transferred to state-controlled forms. Martial arts were increasingly promoted as a sport, health promotion, and cultural heritage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, traces of the old networks are still visible:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 In the master-student relationships, which are often cultivated like family obligations<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 In the intertwining of martial arts, security services, and local business interests<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 In the narrative tradition that casts masters such as Dong Haichuan, Zhang Zhaodong, and Wang Xiangzhai in a semi-legendary light<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even though the political conditions are completely different today, certain parallels can be seen in modern security companies, semi-official local organizations, and the private military and security industry:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Recruitment through personal contacts<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 The combination of physical abilities with local information networks<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 The ability to operate in both formal and informal power structures<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The martial arts networks of northern China at that time are an example of how physical abilities, social ties, and economic interests can be interdependent. They show that martial arts in China were not just a matter of training or philosophy, but a central social resource that could shape lives, power, and influence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Their history is thus not only a chapter in the development of Chinese martial arts, but also a reflection of the political and social upheavals that shaped the country from the end of the imperial era to the modern day.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Primary sources \/ Contemporary reports<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Beijing Gazette (various editions, 1860\u20131910) \u2013 Official court bulletins mentioning administrative officials and security personnel in northern China.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Younghusband, F. E. China and the Far East (1899) \u2013 Travelogue with descriptions of armed escorts and martial arts demonstrations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Parker, E. H. Chinese Secret Societies (1900) \u2013 Early Western account of Chinese secret societies and their local influence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Reports from the North China Herald (Shanghai), 1875\u20131915 \u2013 Newspaper articles on crime, police, and martial arts demonstrations.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Secondary sources \/ research literature<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Esherick, Joseph W. The Origins of the Boxer Uprising. University of California Press, 1987 \u2013 About militias, martial arts groups, and secret societies in northern China during the late Qing period.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Ownby, David. Brotherhoods and Secret Societies in Early and Mid-Qing China. Stanford University Press, 1996 \u2013 Analysis of the role of sworn brotherhoods and their social reach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Kennedy, Brian &amp; Guo, Elizabeth. Chinese Martial Arts Training Manuals: A Historical Survey. North Atlantic Books, 2005 \u2013 Documentation on martial arts practice in the late Qing and early Republican periods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Morris, Andrew D. Marrow of the Nation: A History of Sport and Physical Culture in Republican China. University of California Press, 2004 \u2013 Context on martial arts and physical culture in the early 20th century.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Lorge, Peter A. Chinese Martial Arts: From Antiquity to the Twenty-First Century. Cambridge University Press, 2012 \u2013 Comprehensive overview with historical depth.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Henning, Stanley E. \u201cChinese Martial Arts in the Late Ming and Qing Dynasties.\u201d Journal of Asian Martial Arts 6, No. 3 (1997): 30\u201362.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Wakeman, Frederic. Policing Shanghai, 1927\u20131937. University of California Press, 1995 \u2013 On the overlap between martial arts, security forces, and organized crime.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Between government offices and backyards, between imperial commissions and gambling dens: in the late 19th and early 20th centuries, northern China was crisscrossed by an invisible network of martial artists, officials, secret societies, and underworld figures. They were escort leaders,&hellip; <\/p>\n","protected":false},"author":1,"featured_media":1116,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"{\"document\":\"AAAH+tSVzgSnDrcMCJABgOEKBAIBAgoAShACAQIKAkJKUpIPAQIKAQRKABwBAgoBAEoAFAECCgJCSgC+DgECCgJCSgCKDwECCgJCSgCWDAECCgEASgAUAQIKAkJKAJwMAQIKAkJKALQKAQIKAQBKABQBAgoCQkoAsA0BAgoCQkoAtgkBAgoBAEoAFAECCgJCSgCQDQECCgJCSgCgCQECCgEASgAUAQIKAkJKAJAJAQIKAQBKABQBAgoCQkoAqAsBAgoAShACAQIKAQNKABoBAgoCQkpspAoBAgoBAEoAFAECCgJCSgCSCAECCgJCSgCgDAECCgEASgAUAQIKAkJKAIgCAQIKAkJKAIwFAQIKAkJKAJoFAQIKAkJKAL4GAQIKAQBKABQBAgoCQkoAlAoBAgoCQkoApggBAgoBAEoAFAECCgJCSgC6CgECCgEASgAUAQIKAkJKALwLAQIKAQBKABQBAgoAShACAQIKAkJKAK4MAQIKAQAGRgEASsANvA0BAgoCQkoAkAgBAgoBAEoAFAECCgJCSgCiCgECCgJCSgCCCAECCgEASgAUAQIKAkJKALAJAQIKAkJKALIIAQIKAQBKABQBAgoCQkoAqAoBAgoCQkoAngcBAgoBAEoAFAECCgJCSgCuCQECCgEASgAUAQIKAkJKAIQNAQIKAQBKABQBAgoCQkoAhAcBAgoBAEoAFAECCgJCSgCCCQECCgEASgAUAQIKAkJKAKwPAQIKAQBKABQBAgoCQkoAlggBAgoCQkoAgAYBAgoBAEoAFAECCgJCSgCUCwECCgJCSgCWBwECCgEABkYBAEoAuAgBAgoBAEoAFAECCgJCSgCwCwECCgJCSgCgBwECCgEASgAUAQIKAkJKAKoMAQIKAkJKAJIFAQIKAQBKABQBAgoCQkoAqg0BAgoBAEoAFAECCgJCSgCyCAECCgEASgAUAQIKAkJKAJACAQIKAkJKALoGAQIKAkJKAI4IAQIKAkJKALgHAQIKAkJKAKoNAQIKAkJKAKoHAQIKAQBKABQBAgoCQkoAggwBAgoCQkoAkgUBAgoCQkoAmAwBAgoCQkoAogEBAgoCQkoApAYBAgoCQkoAnAEBAgoCQkoAnAEBAgoCQkoArAIBAgoCQkoArggBAgoCQkoAvAcBAgoBAEoAFAECCgJCSgCCAwECCgJCSgCiAgECCgJCSgCUAwECCgJCSgCOBAECCgBKEAIBAgoCQkpSuAQBAgoBAEoAFAECCgBKEAIBAgoCQkoAug4BAgoBA0rMD6YPAQIKAQBKABQBAgoCQkoAsgIBAgoCQkoAmAIBAgoCQkoAtgMBAgoCQkoAvAMBAgoCQkoAggwBAgoBAEoAFAECCgJCSgC8BwECCgJCSgCMDQECCgEASgAUAQIKAkJKAJoMAQIKAQBKABQBAgoCQkoAuAkBAgoCQkoApAcBAgoBAEoAFAECCgJCSgCECQECCgJCSgCyAQECCgJCSgCKAwECCgJCSgCmAgECCgJCSgCqAgECCgJCSgCmBQECCgEASgAUAQIKAkJKALYHAQIKAQBKABQBAgoCQkoAjgoBAgoBAEoAFAECCgJCSgCMCQECCgJCSgCCCgECCgJCSgCGDAECCgEASgAUAQIKAkJKAK4IAQIKAkJKAJQIAQIKAkJKAJ4LAQIKAQBKABQBAgoCQkoAgAsBAgoCQkoAvgsBAgoBAAZGAQBKAJQBAQIKAQBKABQBAgoCQkoAngwBAgoBAEoAFAECCgJCSgCiCQECCgJCSgC+BAECCgEASgAUAQIKAkJKAJAJAQIKAkJKALQGAQIKAQBKABQBAgoCQkoAlAgBAgoCQkoAvgEBAgoCQkoAhAMBAgoCQkoAvgIBAgoCQkoAmAQBAgoBAEoAFAECCgJCSgC4BgECCgJCSgCgAQECCgJCSgCgAgECCgJCSgCcAgECCgEASgAUAQIKAkJKAJIKAQIKAkJKAIoHAQIKAQBKABQBAgoCQgBKAIICAQIKAkJKAIIFAQIKAkJKAJoEAQIKAkJKAI4EAQIKAkJKAJgEAQIKAkIASgCEAgECCgJCSgCiBgECCgJCSgC4BQECCgJCSgC8BgECCgJCSgC8BgECCgJCSgCaBQECCgJCSgCgBAECCgJCSgC7ECgDJwAEACcABAAnACgEJwAoACcABwAoAycAKAEnAAcAKAMnAQQAKAAnAIcAKAMnACgBJwAoAycAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycAKAEnAAcAKAMnACgBJwAoAicAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycAKAEnAAcAKAMnAQQAKAAnAIcAKAMnACgBJwAEACgCJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycAKAEnAAQAKAInAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoAScABwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnACgBJwAHACgDJwEEACgAJwCHACgDJwAoAScAKAInAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoAScABAAoAicAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnASgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBKAEnAIcAKAMnAQQAKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnACicvQWTrwVzdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHNsdWdkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVNYXJ0aWFsIGFydHMgbmV0d29ya3MgaW4gbm9ydGhlcm4gQ2hpbmFkb2N1bWVudGNvbnRlbnQ8IS0tIHdwOmdyb3VwIHsibGF5b3V0Ijp7InR5cGUiOiJmbGV4IiwiZmxleFdyYXAiOiJub3dyYXAifX0gLS0+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWdyb3VwIj48IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QmV0d2VlbiBnb3Zlcm5tZW50IG9mZmljZXMgYW5kIGJhY2t5YXJkcywgYmV0d2VlbiBpbXBlcmlhbCBjb21taXNzaW9ucyBhbmQgZ2FtYmxpbmcgZGVuczogaW4gdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMsIG5vcnRoZXJuIENoaW5hIHdhcyBjcmlzc2Nyb3NzZWQgYnkgYW4gaW52aXNpYmxlIG5ldHdvcmsgb2YgbWFydGlhbCBhcnRpc3RzLCBvZmZpY2lhbHMsIHNlY3JldCBzb2NpZXRpZXMsIGFuZCB1bmRlcndvcmxkIGZpZ3VyZXMuIFRoZXkgd2VyZSBlc2NvcnQgbGVhZGVycywgeWFtZW4gcnVubmVycywgdGVtcGxlIGd1YXJkc+KAlGFuZCBzb21ldGltZXMgYWxsIG9mIHRoZXNlIGF0IG9uY2UuIFRoaXMgYXJ0aWNsZSBwYWludHMgYSBwb3J0cmFpdCBvZiBhIHBhcmFsbGVsIHdvcmxkIGluIHdoaWNoIGZpc3QgdGVjaG5pcXVlcyB3ZXJlIGp1c3QgYXMgdmFsdWFibGUgYXMgYW4gb2ZmaWNpYWwgc2VhbC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT48L2Rpdj4KPCEtLSAvd3A6Z3JvdXAgLS0+Cgo8IS0tIHdwOmltYWdlIHsiaWQiOjExMTYsInNpemVTbHVnIjoiZnVsbCIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUiLCJhbGlnbiI6ImNlbnRlciJ9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBhbGlnbmNlbnRlciBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L2JpYW9qdS5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtMTExNiIvPjwvZmlndXJlPgo8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Tm9ydGhlcm4gQ2hpbmEgaW4gdGhlIGZpbmFsIGRlY2FkZXMgb2YgdGhlIFFpbmcgRHluYXN0eSB3YXMgYSBjb3VudHJ5IGluIHR1cm1vaWwuIEl0IHdhcyBhIHRpbWUgd2hlbiBpbXBlcmlhbCBhdXRob3JpdHkgd2FzIGZhbHRlcmluZywgZmFtaW5lcyBhbmQgdXByaXNpbmdzIHdlcmUgc2hha2luZyB0aGUgY291bnRyeSwgYW5kIGZvcmVpZ24gcG93ZXJzIHdlcmUgZXhwYW5kaW5nIHRoZWlyIHNwaGVyZXMgb2YgaW5mbHVlbmNlIGluIHRoZSBwb3J0IGNpdGllcy4gSW4gdGhpcyBlbnZpcm9ubWVudCwgbWFydGlhbCBhcnRzIHdlcmUgbm90IGFuIGVsZWdhbnQgcGFzdGltZSBmb3Igd2VhbHRoeSBjaXR5IGR3ZWxsZXJzLCBidXQgYSB0b29sIGZvciBzdXJ2aXZhbCDigJMgYW5kIGZvciBtYW55LCBhIHRpY2tldCB0byBhIGRhbmdlcm91cyBidXQgbHVjcmF0aXZlIG5ldHdvcmsgb2YgcG93ZXIsIG1vbmV5LCBhbmQgaW5mbHVlbmNlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJhY2sgdGhlbiwgcGVvcGxlIGRpZG4ndCB0cmFpbiBpbiBneW1zIG9yIGNsdWJzLiBNYXJ0aWFsIGFydHMgdG9vayBwbGFjZSBpbiBiYWNreWFyZHMsIHRlbXBsZSBjb21wbGV4ZXMsIGR1c3R5IG1hcmtldHBsYWNlcywgYW5kIGltcHJvdmlzZWQgdHJhaW5pbmcgZ3JvdW5kcyBvbiB0aGUgb3V0c2tpcnRzIG9mIHRoZSBjaXR5LiBUaG9zZSB3aG8gbWFzdGVyZWQgYSByZWNvZ25pemVkIHRlY2huaXF1ZSBjb3VsZCBoaXJlIHRoZW1zZWx2ZXMgb3V0IGFzIGVzY29ydCBndWFyZHMsIGVudGVyIHRoZSBzZXJ2aWNlIG9mIHRoZSBsb2NhbCBhZG1pbmlzdHJhdGlvbiwgb3Igd29yayBhcyBlbmZvcmNlcnMgaW4gdGhlIHBvcnQgZGlzdHJpY3RzLiBUaGUgYm91bmRhcmllcyBiZXR3ZWVuIGxlZ2FsIGF1dGhvcml0eSBhbmQgdGhlIHVuZGVyd29ybGQgd2VyZSBhcyBmbHVpZCBhcyB0aGUgWWVsbG93IFJpdmVyIGluIHRoZSByYWlueSBzZWFzb24uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlcmUgd2VyZSBwZW9wbGUgd2hvIGNhcnJpZWQgb3V0IGFycmVzdHMgb24gYmVoYWxmIG9mIHRoZSBtYWdpc3RyYXRlIGluIHRoZSBtb3JuaW5nIGFuZCB1c2VkIHRoZSBzYW1lIGZpc3RzIGZvciBhIHNtdWdnbGVyIG9yIGdhbWJsaW5nIGJvc3MgaW4gdGhlIGV2ZW5pbmcuIFRoZXNlIGR1YWwgcm9sZXMgd2VyZSBub3QgdGhlIGV4Y2VwdGlvbiwgYnV0IHRoZSBub3JtLiBJbiBhIHJlZ2lvbiB3aGVyZSB0aGUgc3RhdGUgd2FzIHdlYWsgYW5kIGRpc3RhbmNlcyB3ZXJlIGxvbmcsIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBmaWxsZWQgdGhlIGdhcHMgaW4gdGhlIHNlY3VyaXR5IGFuZCBhZG1pbmlzdHJhdGl2ZSBzeXN0ZW0g4oCTIG9mdGVuIGluIHRoZWlyIG93biB1bmlxdWUgd2F5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBub3J0aGVybiBwcm92aW5jZXMgc3VjaCBhcyBaaGlsaSAodG9kYXkncyBIZWJlaSB3aXRoIEJlaWppbmcgYW5kIFRpYW5qaW4pIGFuZCBTaGFuZG9uZyB3ZXJlIHBhcnRpY3VsYXJseSBwcmVkZXN0aW5lZCBmb3Igc3VjaCBzdHJ1Y3R1cmVzLiBUaGlzIGlzIHdoZXJlIG1ham9yIHRyYWRlIGFuZCB0cmFuc3BvcnQgcm91dGVzIGNyb3NzZWQ6IHRoZSBHcmFuZCBDYW5hbCwgdGhlIGNvYXN0YWwgcm91dGVzLCBhbmQgdGhlIHJvYWRzIGNvbm5lY3RpbmcgdGhlIGNhcGl0YWwgd2l0aCB0aGUgcG9ydHMuIE1hcmtldHMsIGNhcmF2YW4gc3RhdGlvbnMsIHdhcmVob3VzZXMsIGFuZCBtZWV0aW5nIHBsYWNlcyBmb3IgYXJtZWQgbWVuIHNwcmFuZyB1cCBhdCB0aGVzZSBqdW5jdGlvbnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGVtcGxlIGNvdXJ0eWFyZHMgYmVjYW1lIHBsYWNlcyBub3Qgb25seSBmb3IgcHJheWVyIGJ1dCBhbHNvIGZvciB0cmFpbmluZy4gUm9hZHNpZGUgaW5ucyBvZmZlcmVkIG5vdCBvbmx5IHNvdXAgYW5kIGEgYmVkIGJ1dCBhbHNvIGRpc2NyZWV0IGJhY2sgcm9vbXMgd2hlcmUgb3JkZXJzIHdlcmUgZ2l2ZW4uIExhcmdlIGZlc3RpdmFscyBwcm92aWRlZCBjb3ZlciBmb3Igc2VjcmV0IGFncmVlbWVudHMsIGFuZCBtYXN0ZXItZGlzY2lwbGUgcmVsYXRpb25zaGlwcyBzdHJldGNoZWQgaW52aXNpYmxlIHRocmVhZHMgYmV0d2VlbiB2aWxsYWdlcywgdG93bnMsIGFuZCBlbnRpcmUgcHJvdmluY2VzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2YgdGhhdCB0aW1lIHdlcmUgY29tcGxleCBzdHJ1Y3R1cmVzLiBUaGV5IGNvbm5lY3RlZCBtZXJjaGFudCBndWlsZHMsIHJlbGlnaW91cyBicm90aGVyaG9vZHMsIGxvY2FsIG1pbGl0aWFzLCBhbmQgYWRtaW5pc3RyYXRpdmUgb2ZmaWNpYWxzLiBBIG1hc3RlciBjb3VsZCBiZSBhIHZpbGxhZ2UgZWxkZXIsIGEgeWFtZW4gZW1wbG95ZWUgKG9mZmljaWFsKSwgYW5kIGEgbWVtYmVyIG9mIGEgc2VjcmV0IHNvY2lldHkgYWxsIGF0IHRoZSBzYW1lIHRpbWUuIEhpcyBzdHVkZW50cywgaW4gdHVybiwgYnJvdWdodCBjb250YWN0cyBmcm9tIHZhcmlvdXMgc29jaWFsIHN0cmF0YTogZmFybWVycywgc29sZGllcnMsIHNtdWdnbGVycywgb2ZmaWNpYWxz4oCUYWxsIGZvdW5kIHRoZWlyIHBsYWNlIGluIHRoaXMgbmV0d29yay48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGVzZSBuZXR3b3JrcyB3ZXJlIG5vdCBvbmx5IHNvY2lhbCBjb21tdW5pdGllcywgYnV0IGFsc28gZWNvbm9taWMgbWFjaGluZXMuIFRoZXkgdGhyaXZlZCBvbiBlc2NvcnQgc2VydmljZXMsIG1hcmtldCBwcm90ZWN0aW9uLCBkZWJ0IGNvbGxlY3Rpb24sIGFuZCBvY2Nhc2lvbmFsbHkgc211Z2dsaW5nLiBGb3IgbWFueSwgbWFydGlhbCBhcnRzIHdlcmUgbm90IGp1c3QgYSB0cmFkaXRpb24sIGJ1dCBhIGJ1c2luZXNzIG1vZGVsIOKAkyBhIHRvb2wgdG8gZ3VhcmFudGVlIHNlY3VyaXR5IGFuZCBpbmNvbWUgaW4gdW5jZXJ0YWluIHRpbWVzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBoaXN0b3J5IG9mIHRoZXNlIG5ldHdvcmtzIGlzIG11Y2ggbW9yZSB0aGFuIGp1c3QgYSBmb290bm90ZSBpbiBDaGluZXNlIG1hcnRpYWwgYXJ0cy4gSXQgZXhwbGFpbnMgd2h5IGNlcnRhaW4gc3R5bGVzIGVtZXJnZWQgaW4gbm9ydGhlcm4gQ2hpbmEsIGhvdyB0aGV5IHNwcmVhZCwgYW5kIHdoeSBzb21lIG1hc3RlcnMgYmVjYW1lIGxlZ2VuZHMgd2hpbGUgb3RoZXJzIHJlbWFpbmVkIGluIHRoZSBzaGFkb3dzLiBJdCBhbHNvIHNob3dzIGhvdyBjbG9zZWx5IHZpb2xlbmNlLCBhZG1pbmlzdHJhdGlvbiwgYW5kIHRoZSB1bmRlcndvcmxkIHdlcmUgaW50ZXJ0d2luZWQg4oCTIGFuZCBob3cgbXVjaCBtYXJ0aWFsIGFydHMgd2VyZSBwYXJ0IG9mIHRoZSBzb2NpYWwgYW5kIHBvbGl0aWNhbCBwb3dlciBnYW1lIGF0IHRoZSB0aW1lLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkluIHRoZSBmb2xsb3dpbmcgY2hhcHRlcnMsIHdlIHRha2UgYSBsb29rIGJlaGluZCB0aGUgc2NlbmVzIG9mIHRoaXMgd29ybGQ6IGF0IHRoZSBwb2xpdGljYWwgZnJhbWV3b3JrLCB0aGUgY29tcG9zaXRpb24gb2YgdGhlIG5ldHdvcmtzLCBob3cgdGhleSBmdW5jdGlvbmVkLCB0aGVpciBjb25uZWN0aW9ucyB0byBzZWNyZXQgc29jaWV0aWVzLCBhbmQgc29tZSBvZiB0aGUgbW9zdCBmYW1vdXMgcHJvdGFnb25pc3RzIHN1Y2ggYXMgRG9uZyBIYWljaHVhbiwgWmhhbmcgWmhhb2RvbmcsIGFuZCBXYW5nIFhpYW5nemhhaS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VG8gdW5kZXJzdGFuZCB0aGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIHRoZSBsYXRlIDE5dGggYW5kIGVhcmx5IDIwdGggY2VudHVyaWVzLCBvbmUgbXVzdCBpbWFnaW5lIHRoZSB3b3JsZCBpbiB3aGljaCB0aGV5IGVtZXJnZWQ6IGFuIGVtcGlyZSBpbiBpdHMgZmluYWwgc3RhZ2VzLCBhIHNvY2lldHkgaW4gdHJhbnNpdGlvbiwgYW5kIGFuIGFkbWluaXN0cmF0aW9uIHRoYXQgaW4gbWFueSByZWdpb25zIHdhcyBsaXR0bGUgbW9yZSB0aGFuIGEgdGhpbiB2ZW5lZXIgb3ZlciBsb2NhbCBhdXRvbm9teS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5CeSB0aGUgZW5kIG9mIHRoZSAxOXRoIGNlbnR1cnksIHRoZSBRaW5nIGR5bmFzdHkgd2FzIG5vIGxvbmdlciB0aGUgdW5jaGFsbGVuZ2VkIHBvd2VyIGl0IG9uY2UgaGFkIGJlZW4uIERlY2FkZXMgb2YgaW50ZXJuYWwgdXByaXNpbmdzIOKAkyBmcm9tIHRoZSBUYWlwaW5nIFJlYmVsbGlvbiB0byB0aGUgTmlhbiBSZWJlbGxpb24g4oCTIGhhZCBibGVkIHRoZSBlbXBpcmUgZHJ5LiBEZWZlYXRzIGluIHRoZSBPcGl1bSBXYXJzIGFuZCB0aGUgRmlyc3QgU2luby1KYXBhbmVzZSBXYXIgKDE4OTTigJMxODk1KSBoYWQgZXhwb3NlZCB0aGUgbWlsaXRhcnkncyB3ZWFrbmVzcyBhbmQgZm9yY2VkIHRoZSBjb3VudHJ5IGludG8gdW5lcXVhbCB0cmVhdGllcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6Z3JvdXAgeyJsYXlvdXQiOnsidHlwZSI6ImZsZXgiLCJmbGV4V3JhcCI6Im5vd3JhcCJ9fSAtLT4KPGRpdiBjbGFzcz0id3AtYmxvY2stZ3JvdXAiPjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTEyMCwic2l6ZVNsdWciOiJmdWxsIiwibGlua0Rlc3RpbmF0aW9uIjoibm9uZSJ9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L0NpeGkud2VicCIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS0xMTIwIi8+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkluIG1hbnkgcHJvdmluY2VzLCBpbXBlcmlhbCBhdXRob3JpdHkgZXhpc3RlZCBvbmx5IG9uIHBhcGVyLiBMb2NhbCBvZmZpY2lhbHMgaGFkIHRvIG1haW50YWluIG9yZGVyLCBjb2xsZWN0IHRheGVzLCBhbmQgc2VjdXJlIHRyYWRlIHJvdXRlcyB3aXRoIGxpbWl0ZWQgcmVzb3VyY2VzLiBUaGlzIHdhcyBvZnRlbiBvbmx5IHBvc3NpYmxlIHdpdGggdGhlIGhlbHAgb2YgbG9jYWwgZm9yY2VzIHdpbGxpbmcgdG8gdXNlIHZpb2xlbmNlIOKAkyBhbmQgdGhpcyBpcyB3aGVyZSB0aGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIGNhbWUgaW50byBwbGF5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPjwvZGl2Pgo8IS0tIC93cDpncm91cCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgaGVhcnQgb2YgbG9jYWwgYWRtaW5pc3RyYXRpb24gYmVhdCBpbiB0aGUgWWFtZW4sIHRoZSBvZmZpY2lhbCByZXNpZGVuY2Ugb2YgdGhlIGRpc3RyaWN0IG1hZ2lzdHJhdGUuIFRoaXMgaXMgd2hlcmUgdGF4ZXMsIGp1cmlzZGljdGlvbiwgYW5kIHBvbGljZSBkdXRpZXMgY29udmVyZ2VkLiBIb3dldmVyLCB0aGUgeWFtZW4gcmFyZWx5IGhhZCBlbm91Z2ggdHJhaW5lZCBwZXJzb25uZWwgdG8gY29uc2lzdGVudGx5IGVuZm9yY2UgdGhlIGxhd3MuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhhdCBpcyB3aHkgdGhleSByZWxpZWQgb24geWFtZW4gcnVubmVycyDigJMgb2ZmaWNpYWxzIHdobyBjYXJyaWVkIG91dCBhcnJlc3RzLCBjb2xsZWN0ZWQgdGF4ZXMgYW5kLCBpZiBuZWNlc3NhcnksIGFsc28gY29sbGVjdGVkIGRlYnRzIG9uIGJlaGFsZiBvZiB0aGUgbWFnaXN0cmF0ZS4gVGhlc2UgbWVuIHdlcmUgbm90IGFsd2F5cyBvZmZpY2lhbHMgaW4gdGhlIG1vZGVybiBzZW5zZSwgYnV0IG9mdGVuIHJlY3J1aXRlZCBmaWdodGVycyB3aXRoIGdvb2QgbG9jYWwgY29ubmVjdGlvbnMuIEluIHByYWN0aWNlLCB0aGlzIG1lYW50IHRoYXQgdGhleSB3ZXJlIHdvcmtpbmcgb24gYmVoYWxmIG9mIHRoZSBzdGF0ZSBhbmQgb24gdGhlaXIgb3duIGJ1c2luZXNzIGF0IHRoZSBzYW1lIHRpbWUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+WmhpbGkgKG5vdyBIZWJlaSkgYW5kIFNoYW5kb25nIHdlcmUgcGFydGljdWxhcmx5IHNlbnNpdGl2ZTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgWmhpbGkgd2FzIGhvbWUgdG8gQmVpamluZywgdGhlIGNhcGl0YWwsIGFuZCB3YXMgdGhlIHBvbGl0aWNhbCBoZWFydCBvZiB0aGUgZW1waXJlLiBBdCB0aGUgc2FtZSB0aW1lLCBpdCB3YXMgbG9jYXRlZCBvbiBpbXBvcnRhbnQgdHJhZGUgYW5kIG1pbGl0YXJ5IHJvdXRlcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgU2hhbmRvbmcgd2FzIGFncmljdWx0dXJhbGx5IHJpY2gsIGJ1dCBhbHNvIGNoYXJhY3Rlcml6ZWQgYnkgY29hc3RhbCB0cmFkZSBhbmQgZm9yZWlnbiBjb25jZXNzaW9ucyDigJMgYSBnYXRld2F5IGZvciBXZXN0ZXJuIHRyYWRlcnMsIG1pc3Npb25hcmllcywgYW5kIHRoZSBtaWxpdGFyeS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JbiBib3RoIHByb3ZpbmNlcywgdGhlIGNvbWJpbmF0aW9uIG9mIHN0cmF0ZWdpYyBpbXBvcnRhbmNlLCBoaWdoIGVjb25vbWljIGFjdGl2aXR5LCBhbmQgcG9saXRpY2FsIGluc3RhYmlsaXR5IG1lYW50IHRoYXQgbG9jYWwgcG93ZXIgbmV0d29ya3Mg4oCTIGluY2x1ZGluZyBtYXJ0aWFsIGFydHMgZ3JvdXBzIOKAkyB3ZXJlIGFibGUgdG8gZXhlcnQgZW5vcm1vdXMgaW5mbHVlbmNlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZvciBtZXJjaGFudHMsIGZhcm1lcnMsIGFuZCBjcmFmdHNtZW4sIGFybWVkIHByb3RlY3Rpb24gd2FzIG5vdCBhbiBvcHRpb24gYnV0IGEgbmVjZXNzaXR5LiBSb2JiZXJpZXMgb24gY291bnRyeSByb2FkcywgYXR0YWNrcyBieSByaXZhbCB2aWxsYWdlIGNvbW11bml0aWVzLCBhbmQgZXh0b3J0aW9uIGJ5IGdhbmdzIHdlcmUgcGFydCBvZiBldmVyeWRheSBsaWZlLiBUaG9zZSB3aG8gY291bGQgYWZmb3JkIGl0IGhpcmVkIGd1YXJkcyDigJMgb2Z0ZW4gZnJvbSB0aGUgc2FtZSBuZXR3b3JrcyB0aGF0IHdlcmUgYWxzbyBpbiB0aGUgc2VydmljZSBvZiB0aGUgeWFtZW4uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyBtaXhpbmcgb2YgcHVibGljIG9yZGVyIGFuZCBwcml2YXRlIHVzZSBvZiBmb3JjZSB3YXMgbm90IGFuIGFidXNlIGluIHRoZSBtb2Rlcm4gc2Vuc2UsIGJ1dCBhbiBpbnRlZ3JhbCBwYXJ0IG9mIHRoZSBzeXN0ZW0uIFdpdGhvdXQgdGhlc2Ug4oCcc2VjdXJpdHkgZW50cmVwcmVuZXVycyzigJ0gbWFueSBtYXJrZXRzIHdvdWxkIG5vdCBoYXZlIGZ1bmN0aW9uZWQgYW5kIG1hbnkgY2FyYXZhbnMgd291bGQgbm90IGhhdmUgcmVhY2hlZCB0aGVpciBkZXN0aW5hdGlvbnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QWxsIHRoZXNlIGZhY3RvcnPigJR3ZWFrIGNlbnRyYWwgcG93ZXIsIGZsZXhpYmxlIGxvY2FsIGFkbWluaXN0cmF0aW9uLCBoaWdoIGRlbWFuZCBmb3IgcHJvdGVjdGlvbiwgYW5kIHRoZSBzdHJhdGVnaWMgbG9jYXRpb24gb2Ygbm9ydGhlcm4gQ2hpbmHigJRjcmVhdGVkIHRoZSBpZGVhbCBicmVlZGluZyBncm91bmQgZm9yIGNvbXBsZXgsIG11bHRpLWxheWVyZWQgbWFydGlhbCBhcnRzIG5ldHdvcmtzLiBUaGV5IGZpbGxlZCB0aGUgZ2FwcyB0aGF0IHRoZSBzdGF0ZSBjb3VsZCBub3Qgb3Igd291bGQgbm90IGNsb3NlIGFuZCBiZWNhbWUgYW4gaW50ZWdyYWwgcGFydCBvZiB0aGUgc29jaWFsIGZhYnJpYy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSBpbiB0aGUgbGF0ZSAxOXRoIGFuZCBlYXJseSAyMHRoIGNlbnR1cmllcyB3ZXJlIG5vdCBhIGhvbW9nZW5lb3VzIGJsb2NrLiBUaGV5IGNvbnNpc3RlZCBvZiBwZW9wbGUgd2hvIGhhZCB2ZXJ5IGRpZmZlcmVudCBwcm9mZXNzaW9ucywgc29jaWFsIHBvc2l0aW9ucywgYW5kIGxpZmUgc3RvcmllcyDigJMgY29ubmVjdGVkIGJ5IGEgY29tbW9uIGFzc2V0OiB0aGUgYWJpbGl0eSB0byB1c2UgdmlvbGVuY2UgYW5kIG1vdmUgaW4gYSBtaWxpZXUgd2hlcmUgbG95YWx0eSwgcmVwdXRhdGlvbiwgYW5kIG5ldHdvcmtzIHdlcmUgbW9yZSBpbXBvcnRhbnQgdGhhbiBvZmZpY2lhbCB0aXRsZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmdyb3VwIHsibGF5b3V0Ijp7InR5cGUiOiJmbGV4IiwiZmxleFdyYXAiOiJub3dyYXAifX0gLS0+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWdyb3VwIj48IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIFlhbWVuIFJ1bm5lcnMgc3Rvb2QgYXQgdGhlIGludGVyZmFjZSBiZXR3ZWVuIGFkbWluaXN0cmF0aW9uIGFuZCB0aGUgc3RyZWV0LiBPZmZpY2lhbGx5LCB0aGV5IHdlcmUgYXNzaXN0YW50cyB0byB0aGUgbWFnaXN0cmF0ZSwgcmVzcG9uc2libGUgZm9yIGFycmVzdHMsIHRheCBhbmQgZGVidCBjb2xsZWN0aW9uLCBvciB0aGUgZGVsaXZlcnkgb2Ygb2ZmaWNpYWwgaW5zdHJ1Y3Rpb25zLiBVbm9mZmljaWFsbHksIG1hbnkgdXNlZCB0aGVpciBwb3NpdGlvbiB0byBlbmdhZ2UgaW4gc2lkZSBidXNpbmVzc2VzOiBjb2xsZWN0aW5nIHByb3RlY3Rpb24gbW9uZXksIHdvcmtpbmcgYXMgcHJpdmF0ZSBib2R5Z3VhcmRzLCBvciB0YWtpbmcgb24gYXNzaWdubWVudHMgZnJvbSB0aGUgdW5kZXJ3b3JsZC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTExMiwic2l6ZVNsdWciOiJsYXJnZSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vYmFndWEtemhhbmcuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDgvMTYwMHB4LVlhbWVuLXNpdHp1bmctMTAyNHg3MzAuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTExMTIiLz48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5ZYW1lbiAoV2lraXBlZGlhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+PC9kaXY+CjwhLS0gL3dwOmdyb3VwIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlNvbWUgb2YgdGhlc2UgcnVubmVycyB3ZXJlIHRyYWluZWQgZmlnaHRlcnMsIG90aGVycyBoYWQgbGVhcm5lZCB0aGVpciBza2lsbHMgb24gdGhlIHN0cmVldHMuIFRoZWlyIGFjY2VzcyB0byBpbmZvcm1hdGlvbiDigJMgd2hvIG93ZWQgbW9uZXkgdG8gd2hvbSwgd2hlcmUgd2FudGVkIHBlcnNvbnMgd2VyZSBzdGF5aW5nIOKAkyBtYWRlIHRoZW0gc291Z2h0LWFmdGVyIHBhcnRuZXJzIGZvciBib3RoIG1lcmNoYW50cyBhbmQgc2VjcmV0IHNvY2lldGllcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Bbm90aGVyIGltcG9ydGFudCBncm91cCB3ZXJlIHRoZSBtZW4gb2YgdGhlIEJpYW9qdXMsIHRoZSBlc2NvcnQgYWdlbmNpZXMuIFRoZXkgYWNjb21wYW5pZWQgbWVyY2hhbnQgY2FyYXZhbnMsIHRyYW5zcG9ydGVkIHZhbHVhYmxlIGdvb2RzLCBhbmQgZ3VhcmFudGVlZCBzYWZldHkgb24gb2Z0ZW4gdW5zYWZlIHJvdXRlcy4gVGhlaXIgd29yayBicm91Z2h0IHRoZW0gaW50byBjb250YWN0IHdpdGggYWxsIGtpbmRzIG9mIGFybWVkIGdyb3VwczogYmFuZGl0cywgbWlsaXRpYXMsIGNvbXBldGluZyBlc2NvcnQgY29tcGFuaWVzIOKAkyBhbmQgYWxzbyBjb3JydXB0IG9mZmljaWFscy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5CaWFvanVzIHdlcmUgb2Z0ZW4gY2xvc2VseSBhc3NvY2lhdGVkIHdpdGggbWFydGlhbCBhcnRzIHNjaG9vbHMgYmVjYXVzZSB0aGV5IHRyYWluZWQgdGhlaXIgbWVuIGluIGNsb3NlIGNvbWJhdCwgd2VhcG9uIHVzZSwgYW5kIHRhY3RpY3MgYWdhaW5zdCByYWlkcy4gU29tZSBmYW1vdXMgbWFzdGVycywgc3VjaCBhcyBEb25nIEhhaWNodWFuIGxhdGVyIG9uLCB1c2VkIHN1Y2ggY29udGFjdHMgdG8gZXhwYW5kIHRoZWlyIG5ldHdvcmtzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkluIHBvcnQgY2l0aWVzIHN1Y2ggYXMgVGlhbmppbiwgYW5vdGhlciBncm91cCBwbGF5ZWQgYW4gaW1wb3J0YW50IHJvbGU6IGRvY2t3b3JrZXJzLCBwb3J0ZXJzLCBhbmQgZ3VpbGQgZ3VhcmRzLiBUaGVzZSBtZW4gY29udHJvbGxlZCBub3Qgb25seSB0aGUgZmxvdyBvZiBnb29kcyBidXQgYWxzbyBhY2Nlc3MgdG8gY2VydGFpbiB3b3JrcGxhY2VzLiBUaG9zZSB3aG8gaGFkIGluZmx1ZW5jZSBoZXJlIGNvdWxkIHBhcmFseXplIGVudGlyZSBzdXBwbHkgY2hhaW5z4oCUb3Igc2VjdXJlIHRoZW0gaW4gZXhjaGFuZ2UgZm9yIHBheW1lbnQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TWFueSBwb3J0IGd1YXJkcyBiZWxvbmdlZCB0byBpbmZvcm1hbCBtYXJ0aWFsIGFydHMgZ3JvdXBzIHRoYXQgZGVmZW5kZWQgdGhlaXIgbmVpZ2hib3Job29kcyBvciBwcm90ZWN0ZWQgdGhlaXIgZ3VpbGRzIGZyb20gY29tcGV0aXRpb24uIEluIGEgcG9ydCBkaXN0cmljdCwgaXQgd2FzIGNvbW1vbiB0byBzZWUgYSBmb3JtZXIgc29sZGllciwgYSBmaXNoZXJtYW4sIGFuZCBhIGNhcmF2YW4gZ3VhcmQgdHJhaW5pbmcgdG9nZXRoZXIgaW4gdGhlIHNhbWUgdHJhaW5pbmcgaGFsbC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgYmFja2JvbmUgb2YgdGhlIG5ldHdvcmtzIHdhcyB0aGUgbWFzdGVyLXN0dWRlbnQgcmVsYXRpb25zaGlwLiBBIG1hc3RlciB3YXMgbm90IG9ubHkgYSB0ZWFjaGVyLCBidXQgb2Z0ZW4gYWxzbyBhIGpvYiBicm9rZXIsIGEgZ3VhcmFudG9yIG9mIHByb3RlY3Rpb24sIGFuZCBhIGRvb3Igb3BlbmVyIHRvIGNvbnRhY3RzIGluIG90aGVyIGNpdGllcy4gU3R1ZGVudHMgb3dlZCBoaW0gbm90IG9ubHkgcmVzcGVjdCwgYnV0IG9mdGVuIGFsc28gYWxsZWdpYW5jZSBpbiBwcmFjdGljYWwgbWF0dGVycyDigJMgZnJvbSBlc2NvcnQgYXNzaWdubWVudHMgdG8gcG9saXRpY2FsIGZhdm9ycy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGVzZSByZWxhdGlvbnNoaXBzIG9mdGVuIHNwYW5uZWQgZ2VuZXJhdGlvbnMuIEEgc3R1ZGVudCBjb3VsZCBiZWNvbWUgYSBtYXN0ZXIgaGltc2VsZiB5ZWFycyBsYXRlciBhbmQgc3RpbGwgc2hvdyBsb3lhbHR5IHRvIGhpcyBvcmlnaW5hbCB0ZWFjaGVyIG9yIGhpcyBmYW1pbHkuIFRoaXMgY3JlYXRlZCBuZXR3b3JrcyB0aGF0IGNvbm5lY3RlZCB2aWxsYWdlcywgY2l0aWVzLCBhbmQgcHJvdmluY2VzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXNlIG5ldHdvcmtzIGhhZCBubyBjbHViIHN0cnVjdHVyZSwgbm8gbWVtYmVyc2hpcCBjYXJkcywgYW5kIG5vIGNlbnRyYWwgc3RhdHV0ZXMuIFRoZXkgd2VyZSBsb29zZSBidXQgcm9idXN0IG5ldHdvcmtzIGJhc2VkIG9uIHRydXN0LCBjb21tb24gaW50ZXJlc3RzLCBhbmQgYSBjbGVhciBoaWVyYXJjaHkuIEFueW9uZSB3aG8gd2FudGVkIHRvIGJlbG9uZyBoYWQgdG8gcHJvdmUgdGhlbXNlbHZlcyDigJMgb24gdGhlIG1hdCwgb24gdGhlIHN0cmVldCwgYW5kIGluIHRoZWlyIGRlYWxpbmdzIHdpdGggdGhlIHJpZ2h0IHBlb3BsZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSBmdW5jdGlvbmVkIGxpa2UgbXVsdGktbGF5ZXJlZCBzZXJ2aWNlIGNvbXBhbmllcyDigJMgb25seSB3aXRob3V0IGEgY2xlYXIgYm91bmRhcnkgYmV0d2VlbiBsZWdhbCBhbmQgaWxsZWdhbC4gVGhleSBvZmZlcmVkIHByb3RlY3Rpb24sIG9yZ2FuaXplZCB0cmFuc3BvcnRhdGlvbiwgZ2F0aGVyZWQgaW5mb3JtYXRpb24sIGFuZCBjb3VsZCBhbHNvIHVzZSB2aW9sZW5jZSBpZiBuZWNlc3NhcnkuIFRoZWlyIHN0cmVuZ3RoIGxheSBub3Qgb25seSBpbiB0aGUgZmlzdHMgb2YgdGhlaXIgbWVtYmVycywgYnV0IGFsc28gaW4gdGhlaXIgc3RydWN0dXJlOiBtb2JpbGUsIGFkYXB0YWJsZSwgYW5kIG5ldHdvcmtlZCBhY3Jvc3MgbWFueSBsb2NhdGlvbnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U2VjcmV0IHNpZ25zLCBzcGVjaWZpYyBncmVldGluZ3MsIG9yIHBocmFzZXMgaGVscGVkIG1lbWJlcnMgaWRlbnRpZnkgZWFjaCBvdGhlci4gVGhpcyBhbGxvd2VkIGFuIGVzY29ydCBsZWFkZXIgaW4gU2hhbmRvbmcgdG8gcmVjb2duaXplIGEgZG9jayB3b3JrZXIgaW4gVGlhbmppbiBhcyBhIOKAnGJyb3RoZXIgaW4gdGhlIGNpcmNsZeKAnSB3aXRob3V0IG91dHNpZGVycyBub3RpY2luZy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Zb3UgY291bGRuJ3QganVzdCBqb2luIHRoZXNlIG5ldHdvcmtzIGJ5IHNpZ25pbmcgdXAuIE5ldyBtZW1iZXJzIHdlcmUgYWxtb3N0IGFsd2F5cyBpbnRyb2R1Y2VkIGJ5IHNvbWVvbmUgd2hvIHdhcyBhbHJlYWR5IHBhcnQgb2YgdGhlIG5ldHdvcmsuIFRoZSBmaXJzdCBzdGVwIHdhcyBvZnRlbiB0cmFpbmluZyB3aXRoIGEgcmVjb2duaXplZCBtYXN0ZXIuIFRob3NlIHdobyBzaG93ZWQgbm90IG9ubHkgdGFsZW50IGJ1dCBhbHNvIGxveWFsdHkgd2VyZSByZWNvbW1lbmRlZCB0byBvdGhlcnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIHN1Y2Nlc3Mgb2YgYSBuZXR3b3JrIGRlcGVuZGVkIG9uIGV4ZXJjaXNpbmcgcG93ZXIgd2l0aG91dCBhdHRyYWN0aW5nIHVubmVjZXNzYXJ5IGF0dGVudGlvbiBmcm9tIHRoZSBhdXRob3JpdGllcyBvciByaXZhbCBncm91cHMuIFRvbyBtdWNoIG9wZW4gdmlvbGVuY2UgY291bGQgcHJvdm9rZSBhIHB1bml0aXZlIGV4cGVkaXRpb24gYnkgdGhlIHlhbWVuIG9yIHRoZSBpbnRlcnZlbnRpb24gb2YgYSBzZWNyZXQgc29jaWV0eS4gVGhhdCBpcyB3aHkgZGlwbG9tYWN5IHdhcyBqdXN0IGFzIGltcG9ydGFudCB3aXRoaW4gdGhlc2Ugc3RydWN0dXJlcyBhcyBtYXJ0aWFsIGFydHMuIEFuIGV4cGVyaWVuY2VkIG1hc3RlciBjb3VsZCBzZXR0bGUgY29uZmxpY3RzIGJlZm9yZSB0aGV5IGVzY2FsYXRlZCDigJMgb2Z0ZW4gdGhyb3VnaCBwZXJzb25hbCBtZWV0aW5ncyB3aGVyZSB0ZWEsIHBvbGl0ZSBwaHJhc2VzIGFuZCBzdWJ0bGUgdGhyZWF0cyBmbG93ZWQgdG9nZXRoZXIuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QWx0aG91Z2ggbWFueSBtZW1iZXJzIHdlcmUgdGhlcmUgZm9yIHRoZSBpbmNvbWUsIG1vbmV5IHdhcyBub3QgdGhlIG9ubHkgY3VycmVuY3kuIEhvbm9yIGFuZCByZXB1dGF0aW9uIGRldGVybWluZWQgd2hvIGdvdCB0aGUgZ29vZCBqb2JzLiBBbnlvbmUgd2hvIGJvdGNoZWQgYW4gZXNjb3J0IGpvYiBvciBjaGVhdGVkIGEgY2xpZW50IHJpc2tlZCBub3Qgb25seSB0aGVpciBwbGFjZSBpbiB0aGUgbmV0d29yaywgYnV0IHBvc3NpYmx5IHRoZWlyIGxpZmUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QSBzdHJvbmcgcmVwdXRhdGlvbiwgb24gdGhlIG90aGVyIGhhbmQsIGNvdWxkIGxhc3QgZm9yIGRlY2FkZXMuIFNvbWUgbWFzdGVycyBzdGlsbCByZWNlaXZlZCBnaWZ0cyBvciBmYXZvcnMgaW4gdGhlaXIgb2xkIGFnZSBmcm9tIG1lcmNoYW50cyB3aG9zZSBncmFuZGZhdGhlcnMgdGhleSBoYWQgb25jZSBwcm90ZWN0ZWQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QSB3ZWxsLWtub3duIG1hc3RlciBvciBleHBlcmllbmNlZCBmaWdodGVyIG9mdGVuIGRpZCBub3QgZXZlbiBuZWVkIHRvIHN0cmlrZSDigJMgaGlzIG5hbWUgYWxvbmUgd2FzIGVub3VnaCB0byBhdm9pZCBjb25mbGljdC4gTWVyY2hhbnRzIHByZWZlcnJlZCB0byBwYXkgcHJvdGVjdGlvbiBtb25leSB0byBzb21lb25lIHdpdGggYSBmZWFyZWQgcmVwdXRhdGlvbiByYXRoZXIgdGhhbiByaXNrIHByb3Zva2luZyB0aGVpciB3cmF0aC4gUml2YWxzIHRob3VnaHQgdHdpY2UgYmVmb3JlIG1lc3Npbmcgd2l0aCBhIG1hbiB3aG8gd2FzIHJ1bW9yZWQgdG8gaGF2ZSByZW1haW5lZCB1bmRlZmVhdGVkIGluIGEgZG96ZW4gZmlnaHRzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoaXMgcmVwdXRhdGlvbiB3YXMgYnVpbHQgbm90IG9ubHkgdGhyb3VnaCB2aWN0b3JpZXMgaW4gY29tYmF0LCBidXQgYWxzbyB0aHJvdWdoIGJlaGF2aW9yIG91dHNpZGUgdGhlIHRyYWluaW5nIGhhbGw6IGdlbmVyb3NpdHkgdG93YXJkcyBzdHVkZW50cywgaG9ub3IgaW4gYnVzaW5lc3MsIGtlZXBpbmcgcHJvbWlzZXMuIEEgc2luZ2xlIGJldHJheWFsIGNvdWxkIGRlc3Ryb3kgZXZlcnl0aGluZy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTExNCwic2l6ZVNsdWciOiJsYXJnZSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vYmFndWEtemhhbmcuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDgvMTIwMDA5NzVfMTAxNTMwNTQ2NzgxMzI0MTFfODAyMzgyNTUxNzkwODU2MDA0NF9vLTEwMjR4NzY4LmpwZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS0xMTE0Ii8+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+TGnDuiBTaMOsamnDqSAo5YqJ5aOr5YKRLCAxODY04oCTMTkzMCkgYW4gZXNjb3J0IGd1YXJkIHdvcmtpbmcgZm9yIFTDs25neMOsbmdnxY1uZyAo5ZCM6IiI5YWsKSwgPGJyPlRvbmd4aW5nZ29uZyBNdXNldW0sIFBpbmd5YW8gKExhdXJlbnQgQ2hpcmNvcC1SZXllczsgSWxsZWdhbCBDYXJhdmFuIFRyYWRlIGFuZCBPdXRsYXcgQXJtZWQgRXNjb3J0cyBpbiB0aGUgUWluZyBEeW5hc3R5OiBDcml0aWNhbCBBbmFseXNpcyBvZiBUd28gMTh0aCBDZW50dXJ5IE1lbW9yaWFscyBMYXVyZW50IENoaXJjb3AtUmV5ZXMpPC9maWdjYXB0aW9uPjwvZmlndXJlPgo8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5DZXJ0YWluIG1hcnRpYWwgYXJ0cyB3ZXJlIGNvbnNpZGVyZWQgcGFydGljdWxhcmx5IHByZXN0aWdpb3VzLiBTdHlsZXMgc3VjaCBhcyBCYWd1YXpoYW5nLCBYaW5neWlxdWFuLCBvciBUb25nYmVpcXVhbiB3ZXJlIGtub3duIGluIG5vcnRoZXJuIENoaW5hIG5vdCBvbmx5IGZvciB0aGVpciBlZmZlY3RpdmVuZXNzIGJ1dCBhbHNvIGZvciB0aGVpciBleGNsdXNpdml0eS4gVGhvc2Ugd2hvIG1hc3RlcmVkIG9uZSBvZiB0aGVzZSBzdHlsZXMg4oCTIGFuZCBkZW1vbnN0cmF0ZWQgdGhpcyBpbiBwZXJmb3JtYW5jZXMgb3IgcmVhbC1saWZlIGNvbmZyb250YXRpb25zIOKAkyBmb3VuZCBpdCBlYXNpZXIgdG8gZW50ZXIgaGlnaC1yYW5raW5nIG5ldHdvcmtzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk1hbnkgeWFtZW4gcnVubmVycyBhbmQgZXNjb3J0IGxlYWRlcnMgdXNlZCB0aGVpciBza2lsbHMgdG8gZ2FpbiBhY2Nlc3MgdG8gd2VhbHRoeSBjbGllbnRzLiBBIG1hc3RlciB3aG8gdHJhaW5lZCB0aGUgYm9keWd1YXJkcyBvZiBhIHByb3ZpbmNpYWwgb2ZmaWNpYWwsIGZvciBleGFtcGxlLCBjb3VsZCBiZSBhbG1vc3QgY2VydGFpbiBvZiByZWNlaXZpbmcgcG9saXRpY2FsIGJhY2tpbmcgaW4gcmV0dXJuLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBib25kIGJldHdlZW4gbWFzdGVyIGFuZCBzdHVkZW50IHdhcyBvZnRlbiBjbG9zZXIgdGhhbiB0aGF0IGJldHdlZW4gYnVzaW5lc3MgcGFydG5lcnMgb3IgZXZlbiBmYW1pbHkgbWVtYmVycy4gQSBzdHVkZW50IHdobyByZW1haW5lZCBsb3lhbCB0byBoaXMgdGVhY2hlciBjb3VsZCBjb3VudCBvbiBnZXR0aW5nIHdvcmssIGFjY29tbW9kYXRpb24sIG9yIHByb3RlY3Rpb24gd2hlbiBuZWVkZWQuIENvbnZlcnNlbHksIGEgbWFzdGVyIGNvdWxkIGV4ZXJ0IGluZmx1ZW5jZSBpbiBvdGhlciBjaXRpZXMgdGhyb3VnaCBoaXMgc3R1ZGVudHPigJRlYWNoIHdlbGwtcGxhY2VkIHN0dWRlbnQgd2FzIGxpa2UgYW4g4oCcaW52ZXN0bWVudCBwb2ludOKAnSBpbiB0aGUgdGVhY2hlcidzIHNvY2lhbCBjYXBpdGFsLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXNlIGJvbmRzIG9mdGVuIGxhc3RlZCBmb3IgZ2VuZXJhdGlvbnMuIEEgZ3JhbmRzb24gY291bGQgc3RpbGwgYmVuZWZpdCBmcm9tIHRoZSByZWxhdGlvbnNoaXBzIGhpcyBncmFuZGZhdGhlciBoYWQgZXN0YWJsaXNoZWQgYXMgYSBzdHVkZW50IG9mIGEgZmFtb3VzIG1hc3Rlci48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JbiBhIHRpbWUgd2l0aG91dCBoZWFsdGggb3IgYWNjaWRlbnQgaW5zdXJhbmNlLCBtYXJ0aWFsIGFydHMgY291bGQgYWN0dWFsbHkgbWVhbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGxpZmUgYW5kIGRlYXRoLiBUaG9zZSB3aG8gd29ya2VkIGluIGRhbmdlcm91cyBwcm9mZXNzaW9uc+KAlHdoZXRoZXIgYXMgY2FyYXZhbiBsZWFkZXJzLCBkb2Nrd29ya2Vycywgb3IgYmFpbGlmZnPigJRoYWQgdG8gcmVja29uIHdpdGggcm9iYmVyaWVzLCBmaWdodHMsIGFuZCBzcG9udGFuZW91cyBhbHRlcmNhdGlvbnMuIFBoeXNpY2FsIGZpdG5lc3MsIHF1aWNrIHJlYWN0aW9ucywgYW5kIHRoZSBjb3VyYWdlIHRvIHVzZSBmb3JjZSB3ZXJlIG5vdCBvbmx5IHBlcnNvbmFsIGFkdmFudGFnZXMgYnV0IGFsc28gcXVhbGl0aWVzIHRoYXQgZW5oYW5jZWQgc29jaWFsIHN0YXR1cy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSByYXJlbHkgc3Rvb2QgYWxvbmUuIFRoZXkgd2VyZSBlbWJlZGRlZCBpbiBhIG5ldHdvcmsgb2Ygc2VjcmV0IHNvY2lldGllcywgcmVsaWdpb3VzIGJyb3RoZXJob29kcywgc2VjdHMsIGFuZCBjcmltaW5hbCBzeW5kaWNhdGVzLCBtYW55IG9mIHdoaWNoIGhhZCBleGlzdGVkIGZvciBjZW50dXJpZXPigJRzb21lIHdpdGggaWRlb2xvZ2ljYWwgcm9vdHMsIG90aGVycyBwdXJlbHkgcHJvZml0LW9yaWVudGVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkluIG5vcnRoZXJuIENoaW5hLCBmb3VyIHN0cnVjdHVyZXMgaW4gcGFydGljdWxhciBwbGF5ZWQgYSByb2xlOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiA8c3Ryb25nPlRoZSDigJxCcm90aGVyaG9vZHMgb2YgdGhlIEdyZWVuIEZvcmVzdHPigJ0gKEzDvGxpbik8L3N0cm9uZz4g4oCTIGxvb3NlbHkgb3JnYW5pemVkIGJhbmRpdCBnYW5ncyB0aGF0IGhpZCBpbiBpbmFjY2Vzc2libGUgcmVnaW9ucyBzdWNoIGFzIG1vdW50YWlucyBvciBmb3Jlc3RzIGFuZCBvY2Nhc2lvbmFsbHkgd29ya2VkIGFzIG1lcmNlbmFyaWVzIG9yIGVzY29ydHMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIDxzdHJvbmc+VGhlIOKAnEhlYXZlbiBhbmQgRWFydGggU29jaWV0eeKAnSAoVGlhbmRpaHVpKSA8L3N0cm9uZz7igJMgb3JpZ2luYWxseSBmb3VuZGVkIHdpdGggYW50aS1NYW5jaHUgaWRlYWxzLCBsYXRlciBvZnRlbiBpbnZvbHZlZCBpbiBzbXVnZ2xpbmcsIGdhbWJsaW5nLCBhbmQgcHJvdGVjdGlvbiByYWNrZXRzLkhvbmdtZW4gKOa0qumWgCkgT3JpZ2luYWxseSBlbWVyZ2luZyBmcm9tIHRoZSByZXNpc3RhbmNlIGFnYWluc3QgdGhlIFFpbmcgZHluYXN0eSw8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgPHN0cm9uZz5UaGUgSG9uZ21lbjwvc3Ryb25nPiA8c3Ryb25nPijmtKrploApPC9zdHJvbmc+IHJldGFpbmVkIGEgcmV2b2x1dGlvbmFyeSBhdXJhLiBJbiB0aGUgbGF0ZSBRaW5nIHBlcmlvZCwgdGhleSB3ZXJlIHBhcnRseSBpbnRlZ3JhdGVkIGludG8gcG9ydCBhbmQgdHJhbnNwb3J0IHdvcmsgaW4gc291dGhlcm4gYW5kIGVhc3Rlcm4gQ2hpbmEsIGFuZCBwYXJ0bHkgaW52b2x2ZWQgaW4gc211Z2dsaW5nIGFuZCBnYW1ibGluZy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgPHN0cm9uZz5HcmVlbiBHYW5nICjpnZLluaspPC9zdHJvbmc+IE9yaWdpbmFsbHkgZm9ybWVkIGZyb20gYm9hdCBjcmV3cyBvbiB0aGUgSW1wZXJpYWwgQ2FuYWwsIGl0IGJlY2FtZSBhIHBvd2VyZnVsIGZvcmNlIGluIFNoYW5naGFpLCBjb29wZXJhdGluZyB3aXRoIGJvdGggdGhlIEt1b21pbnRhbmcgKEtNVCkgYW5kIHRoZSBmb3JlaWduIGNvbmNlc3Npb24gcG9saWNlLiBJdCBjb250cm9sbGVkIHRoZSBvcGl1bSB0cmFkZSwgZ2FtYmxpbmcsIGFuZCBwcm90ZWN0aW9uIG1vbmV54oCUYW5kIGFsc28gZW1wbG95ZWQgbWFydGlhbCBhcnRzIGV4cGVydHMgdG8gZW5mb3JjZSBpdHMgY29udHJvbC4gVGhlaXIgaW5mbHVlbmNlIGV4dGVuZGVkIGJleW9uZCB0cmFkZSByb3V0ZXMgdG8gVGlhbmppbiwgY29ubmVjdGluZyB0aGUgbm9ydGggd2l0aCB0aGUgc291dGguPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlc2Ugb3JnYW5pemF0aW9ucyBoYWQgdGhlaXIgb3duIHJpdHVhbHMsIGlkZW50aWZ5aW5nIG1hcmtzLCBhbmQgaW5pdGlhdGlvbiByaXRlcywgYW5kIHRoZXkgb2Z0ZW4gb3ZlcmxhcHBlZCB3aXRoIG1hcnRpYWwgYXJ0cyBzY2hvb2xzIOKAkyBlaXRoZXIgYmVjYXVzZSB0aGUgbWFzdGVycyB0aGVtc2VsdmVzIHdlcmUgbWVtYmVycyBvciBiZWNhdXNlIHRoZWlyIHN0dWRlbnRzIHdlcmUgcmVjcnVpdGVkIHRoZXJlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlNlY3RzIHdpdGggRGFvaXN0IG9yIEJ1ZGRoaXN0IGluZmx1ZW5jZXMgb2ZmZXJlZCBub3Qgb25seSBzcGlyaXR1YWwgZ3VpZGFuY2UgYnV0IGFsc28gYSBzb2NpYWwgc2FmZXR5IG5ldC4gVGVtcGxlcyBzZXJ2ZWQgYXMgbWVldGluZyBwbGFjZXMgd2hlcmUgcGVvcGxlIGNvdWxkIGRpc2N1c3MgbWF0dGVycywgdHJhaW4sIG9yIGFycmFuZ2UgYXNzaWdubWVudHMuIFNvbWUgb2YgdGhlc2UgZ3JvdXBzIG1peGVkIHJlbGlnaW91cyB0ZWFjaGluZ3Mgd2l0aCBtaWxpdGFudCBzdHJ1Y3R1cmVzLCBzdWNoIGFzIHRoZSA8c3Ryb25nPuKAnFdoaXRlIExvdHVzIE1vdmVtZW50LOKAnTwvc3Ryb25nPiB3aGljaCB3YXMgcmVwZWF0ZWRseSBpbnZvbHZlZCBpbiB1cHJpc2luZ3MuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rm9yIG1hbnkgZmlnaHRlcnMsIGJlbG9uZ2luZyB0byBhIHNlY3Qgd2FzIG5vdCBpbmNvbXBhdGlibGUgd2l0aCB0aGVpciB3b3JrIGFzIHlhbWVuIHJ1bm5lcnMgb3IgZXNjb3J0IGxlYWRlcnMg4oCTIGl0IHdhcyBhbiBhZGRpdGlvbmFsIGJvbmQgdGhhdCBlbnN1cmVkIGxveWFsdHkuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RGFvaXN0IHNlY3RzIHN1Y2ggYXMgdGhlIDxzdHJvbmc+TG9uZ21lbiAoRHJhZ29uIEdhdGUpPC9zdHJvbmc+IFNjaG9vbCBwbGF5ZWQgYSBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHJvbGUuIFRoZWlyIHRlbXBsZXMgYW5kIG1vbmFzdGVyaWVzIHdlcmUgc2FmZSBoYXZlbnMgZm9yIHRyYXZlbGVycywgbWVyY2hhbnRzLCBhbmQgd2FycmlvcnMuIEFueW9uZSBpbiBTaGVuIENvdW50eSB3aG8gYmVsb25nZWQgdG8gc3VjaCBhIGNpcmNsZSBjb3VsZCByZWx5IG9uIHRoZSBzYW1lIHN5bWJvbHMsIHJpdHVhbHMsIGFuZCBjb2RlcyBpbiBTaGFuZ2hhaeKAlGFuZCB0aHVzIGdhaW4gYWNjZXNzIHRvIGNsb3NlZCBjaXJjbGVzIGV2ZW4gd2l0aG91dCBhIGZvcm1hbCByZWNvbW1lbmRhdGlvbi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UZW1wbGVzIGFzIG1lZXRpbmcgcGxhY2VzIGluIHVyYmFuIGFyZWFzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SGlzdG9yaWNhbCBzdHVkaWVzIHNob3cgdGhhdCBpbiB0aGUgbGF0ZSBRaW5nIHBlcmlvZCBhbmQgZHVyaW5nIHRoZSBSZXB1YmxpYyBlcmEsIHNtYWxsZXIgRGFvaXN0IGFuZCBCdWRkaGlzdCB0ZW1wbGVzIHdlcmUgdXNlZCBmb3IgbXVsdGlwbGUgcHVycG9zZXMsIGVzcGVjaWFsbHkgaW4gY2l0aWVzIHN1Y2ggYXMgU2hhbmdoYWkgYW5kIFRpYW5qaW46PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIGFzIHBsYWNlcyBvZiBwcmF5ZXIgYW5kIHBpbGdyaW1hZ2UsPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIGFzIG1lZXRpbmcgcGxhY2VzIGZvciBsb2NhbCBndWlsZHMsPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIGFzIGRpc2NyZWV0IG1lZXRpbmcgcGxhY2VzIGZvciBhY3RvcnMgd2hvIGRpZCBub3Qgd2FudCB0byBhcHBlYXIgaW4gcHVibGljLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJyaWFuIEcuIE1hcnRpbiAoVGhlIFNoYW5naGFpIEdyZWVuIEdhbmc6IFBvbGl0aWNzIGFuZCBPcmdhbml6ZWQgQ3JpbWUsIDE5MTnigJMxOTM3LCAxOTk2KSBkb2N1bWVudHMgdGhhdCB0aGUgR3JlZW4gR2FuZyB1c2VkIHRlbXBsZXMgaW4gU2hhbmdoYWkncyBpbnRlcm5hdGlvbmFsIGNvbmNlc3Npb25zIHRvIGhvbGQgbWVldGluZ3Mgd2hlcmUgS01UIG9mZmljaWFscywgdW5pb24gbGVhZGVycywgYW5kIHVuZGVyd29ybGQgcmVwcmVzZW50YXRpdmVzIGNhbWUgdG9nZXRoZXIuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RnJlZGVyaWMgV2FrZW1hbiBKci4gKFBvbGljaW5nIFNoYW5naGFpIDE5MjfigJMxOTM3LCAxOTk1KSBkZXNjcmliZXMgaG93IHRoZSBGcmVuY2ggYW5kIGludGVybmF0aW9uYWwgY29uY2Vzc2lvbiBwb2xpY2Ugd2VyZSByZWx1Y3RhbnQgdG8gZW50ZXIgc3VjaCByZWxpZ2lvdXMgc2l0ZXMg4oCTIGEgcmVsdWN0YW5jZSB0aGF0IG1hZGUgdGhlc2UgcGxhY2VzIGF0dHJhY3RpdmUgdmVudWVzIGZvciBjb25maWRlbnRpYWwgbWVldGluZ3MuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Q2VydGFpbiBjcmltaW5hbCBhY3Rpdml0aWVzIGJlbmVmaXRlZCBkaXJlY3RseSBmcm9tIHRoZSBza2lsbHMgb2YgbWFydGlhbCBhcnRzIG5ldHdvcmtzOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBTbXVnZ2xpbmcg4oCTIGZpZ2h0ZXJzIGtuZXcgdGhlIGhpZGRlbiByb3V0ZXMgYW5kIGNvdWxkIHByb3RlY3QgY29udm95cy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgR2FtYmxpbmcgYW5kIG9waXVtIGRlbnMg4oCTIG1hcnRpYWwgYXJ0cyBwcmFjdGl0aW9uZXJzIG9mdGVuIGFjdGVkIGFzIGJvdW5jZXJzIG9yIGVuZm9yY2VycyBoZXJlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBFeHRvcnRpb24g4oCTIOKAnHByb3RlY3Rpb27igJ0gYWdhaW5zdCBnYW5ncyB3YXMgYSBsdWNyYXRpdmUgYnVzaW5lc3MsIGFuZCBtYXJ0aWFsIGFydGlzdHMgbWFkZSB0aGUgdGhyZWF0cyBwYXJ0aWN1bGFybHkgY3JlZGlibGUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmdyb3VwIHsibGF5b3V0Ijp7InR5cGUiOiJmbGV4IiwiZmxleFdyYXAiOiJub3dyYXAifX0gLS0+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWdyb3VwIj48IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIGNsb3NlIGNvbm5lY3Rpb24gdG8gdGhlIHVuZGVyd29ybGQgbWVhbnQgdGhhdCB0aGUgc2FtZSBtZW4gd2hvIGVzY29ydGVkIGdvb2RzIGR1cmluZyB0aGUgZGF5IHN0b29kIGd1YXJkIGluIGEgZ2FtYmxpbmcgaG91c2UgYXQgbmlnaHQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+PC9kaXY+CjwhLS0gL3dwOmdyb3VwIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpncm91cCB7ImxheW91dCI6eyJ0eXBlIjoiZmxleCIsImZsZXhXcmFwIjoibm93cmFwIn19IC0tPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1ncm91cCI+PCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk5vdCBhbGwgbmV0d29ya3Mgb3BlcmF0ZWQgc29sZWx5IGZvciBwcm9maXQuIFNvbWUgc2VjcmV0IHNvY2lldGllcyBjdWx0aXZhdGVkIGlkZW9sb2dpY2FsIG5hcnJhdGl2ZXMg4oCTIHN1Y2ggYXMgdGhlIHJldHVybiBvZiB0aGUgTWluZyBkeW5hc3R5IG9yIHRoZSBmaWdodCBhZ2FpbnN0IGZvcmVpZ24gcG93ZXJzLiBUaGVzZSBpZGVhcyBwcm92aWRlZCBhIG1vcmFsIGp1c3RpZmljYXRpb24gZm9yIHZpb2xlbmNlIGFuZCBoZWxwZWQgdG8gYmluZCBtZW1iZXJzIHRvZ2V0aGVyLiBJbiBwcmFjdGljZSwgdGhlIGJvdW5kYXJpZXMgYmV0d2VlbiBpZGVvbG9neSBhbmQgYnVzaW5lc3MgcXVpY2tseSBiZWNhbWUgYmx1cnJlZDogYSDigJxwYXRyaW904oCdIGNvdWxkIGxlYWQgYW4gYW50aS1mb3JlaWduIGRlbW9uc3RyYXRpb24gaW4gdGhlIG1vcm5pbmcgYW5kIHNlY3VyZSBhIHNtdWdnbGluZyByb3V0ZSBpbiB0aGUgYWZ0ZXJub29uLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDppbWFnZSB7ImlkIjoxMTEwLCJzaXplU2x1ZyI6Im1lZGl1bSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1tZWRpdW0iPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L0MzRDA1NTQ3LUZFNjQtNDBERC1BOTQ3LTM4QkQ3MzQxQjlDNS0yMDB4MzAwLnBuZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS0xMTEwIi8+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPjwvZGl2Pgo8IS0tIC93cDpncm91cCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgY29ubmVjdGlvbiBiZXR3ZWVuIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBhbmQgc2VjcmV0IHNvY2lldGllcyB3YXMgc3ltYmlvdGljOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBUaGUgZmlnaHRlcnMgb2ZmZXJlZCBwaHlzaWNhbCBwb3dlciwgZGlzY2lwbGluZSwgYW5kIGxvY2FsIHJvb3RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBUaGUgc2VjcmV0IHNvY2lldGllcyBvZmZlcmVkIHByb3RlY3Rpb24gZnJvbSBzdGF0ZSBwZXJzZWN1dGlvbiwgYWNjZXNzIHRvIHJlc291cmNlcywgYW5kIHN1cHJhcmVnaW9uYWwgY29udGFjdHMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QW4gZXhwZXJpZW5jZWQgbWFzdGVyIGNvdWxkIHRodXMgZW5qb3kgYXNzaWdubWVudHMgYW5kIHByb3RlY3Rpb24gbm90IG9ubHkgd2l0aGluIGhpcyBjaXR5LCBidXQgaW4gc2V2ZXJhbCBwcm92aW5jZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIGJlZ2lubmluZyBvZiB0aGUgMjB0aCBjZW50dXJ5IHdhcyBhIHRpbWUgb2YgcHJvZm91bmQgY2hhbmdlIGZvciB0aGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIG5vcnRoZXJuIENoaW5hLiBUaGUgcG9saXRpY2FsIHVwaGVhdmFscyBvZiB0aG9zZSB5ZWFycyDigJMgZnJvbSB0aGUgQm94ZXIgUmViZWxsaW9uIHRvIHRoZSBmYWxsIG9mIHRoZSBRaW5nIER5bmFzdHkgYW5kIHRoZSBXYXJsb3JkIEVyYSDigJMgYnJvdWdodCBuZXcgb3Bwb3J0dW5pdGllcywgYnV0IGFsc28gcmlza3MuIE1hbnkgb2YgdGhlIG9sZCBzdHJ1Y3R1cmVzIHN1cnZpdmVkLCBidXQgdGhlaXIgZnVuY3Rpb25zIGFuZCBwdWJsaWMgcGVyY2VwdGlvbiBjaGFuZ2VkIGRyYW1hdGljYWxseS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgc28tY2FsbGVkIOKAnFlpaGV0dWFu4oCdIHVwcmlzaW5nIHdhcyBhIGtleSBtb21lbnQgaW4gdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiBtYXJ0aWFsIGFydHMsIHJlbGlnaW9uLCBhbmQgcG9saXRpY3MuIFRoZSBCb3hlciBtb3ZlbWVudCBtaXhlZCBsb2NhbCBtYXJ0aWFsIGFydHMgZ3JvdXBzIHdpdGggc3Bpcml0dWFsaXN0IHByYWN0aWNlcyBhbmQgYSBzdHJvbmdseSBhbnRpLWZvcmVpZ24sIGFudGktQ2hyaXN0aWFuIGFnZW5kYS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5NYW55IG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBzeW1wYXRoaXplZCB3aXRoIHRoZSBCb3hlcnMsIHNvbWUgcHJvdmlkaW5nIGZpZ2h0ZXJzIG9yIGxvZ2lzdGljYWwga25vd2xlZGdlLiBIb3dldmVyLCB0aGUgYnJ1dGFsIHN1cHByZXNzaW9uIG9mIHRoZSB1cHJpc2luZyBieSB0aGUgY29tYmluZWQgZm9yY2VzIG9mIHRoZSDigJxFaWdodC1OYXRpb24gQWxsaWFuY2XigJ0gZGVzdHJveWVkIG1hbnkgb2YgdGhlc2Ugc3RydWN0dXJlcy4gSW4gdGhlIHllYXJzIHRoYXQgZm9sbG93ZWQsIG1hbnkgZmlnaHRlcnMgd2VyZSB1bmRlciBpbmNyZWFzZWQgc2NydXRpbnksIGFuZCB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIG1hcnRpYWwgYXJ0cyBhbmQgcG9saXRpY2FsIGFnaXRhdGlvbiBiZWNhbWUgbGlmZS10aHJlYXRlbmluZyBmb3Igc29tZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgWGluaGFpIFJldm9sdXRpb24gYnJvdWdodCBhbiBlbmQgdG8gdGhlIFFpbmcgZHluYXN0eSDigJMgYnV0IG5vdCB0byB0aGUgc3RydWN0dXJlcyBvZiB2aW9sZW5jZS4gT24gdGhlIGNvbnRyYXJ5OiBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kLCBtYW55IGZpZ2h0ZXJzIHRvb2sgYWR2YW50YWdlIG9mIHRoZSBwb3dlciB2YWN1dW0gdG8gc3RyZW5ndGhlbiB0aGVpciBwb3NpdGlvbi4gU29tZSBqb2luZWQgcmV2b2x1dGlvbmFyeSBtaWxpdGlhcywgb3RoZXJzIG9mZmVyZWQgdGhlaXIgc2VydmljZXMgdG8gdGhlIG5ldyBwcm92aW5jaWFsIGdvdmVybm1lbnRzLCBhbmQgc3RpbGwgb3RoZXJzIHNvdWdodCBwcm90ZWN0aW9uIGZyb20gcG93ZXJmdWwgbG9jYWwgbGVhZGVycy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgcG9saXRpY2FsIGZyYWdtZW50YXRpb24gZm9sbG93aW5nIHRoZSBkZWF0aCBvZiBZdWFuIFNoaWthaSBsZWQgdG8gdGhlIHJ1bGUgb2YgcmVnaW9uYWwgbWlsaXRhcnkgbGVhZGVycyAod2FybG9yZHMpLiBUaGVzZSBtZW4gb2Z0ZW4gcnVsZWQgdGhlaXIgdGVycml0b3JpZXMgbGlrZSBwcml2YXRlIHByaW5jZXMg4oCTIGFuZCB0aGV5IGhhZCBhIGdyZWF0IG5lZWQgZm9yIGxveWFsLCBiYXR0bGUtaGFyZGVuZWQgbWVuLiBNYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2ZmZXJlZCBhbiBpZGVhbCByZWNydWl0aW5nIGdyb3VuZCBmb3IgdGhpcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5EdXJpbmcgdGhpcyBwZXJpb2QsIHNvbWUgbWFydGlhbCBhcnRzIG1hc3RlcnMgcm9zZSB0byBiZWNvbWUgbWlsaXRhcnkgaW5zdHJ1Y3RvcnMgb3IgZXZlbiBvZmZpY2Vycy4gVGhvc2Ugd2hvIHdlcmUgc2tpbGxlZCBjb3VsZCBnYWluIGdyZWF0IGluZmx1ZW5jZSDigJMgdGhvc2Ugd2hvIHdlcmUgdW5sdWNreSB3ZXJlIGRyYXduIGludG8gZW5kbGVzcyBza2lybWlzaGVzIGJldHdlZW4gcml2YWwgd2FybG9yZHMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UGFyYWxsZWwgdG8gdGhpcyBtaWxpdGFyaXphdGlvbiwgYSBjb3VudGVydHJlbmQgYmVnYW46IHRoZSBpbnN0aXR1dGlvbmFsaXphdGlvbiBhbmQgc3BvcnRpZmljYXRpb24gb2YgbWFydGlhbCBhcnRzLiBTdGFydGluZyBpbiB0aGUgMTkxMHMsIHB1YmxpYyBtYXJ0aWFsIGFydHMgc2Nob29scyBhbmQgYXNzb2NpYXRpb25zIGVtZXJnZWQgdGhhdCBmb2N1c2VkIGxlc3Mgb24gdGhlIHVzZSBvZiB2aW9sZW5jZSBhbmQgbW9yZSBvbiBwaHlzaWNhbCBjdWx0dXJlIGFuZCBuYXRpb25hbCBwcmlkZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGVyZSB3ZXJlIHNldmVyYWwgcmVhc29ucyBmb3IgdGhpcyBkZXZlbG9wbWVudDo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgVGhlIG5ldyByZXB1YmxpY2FuIGdvdmVybm1lbnQgd2FudGVkIHRvIGNoYW5uZWwgY29tYmF0aXZlIGVuZXJneSBpbnRvIGNvbnRyb2xsZWQgY2hhbm5lbHMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIEZvcmVpZ24gc3BvcnRzIHN1Y2ggYXMgYm94aW5nIGFuZCBqdWRvIGluc3BpcmVkIG1vZGVybiB0cmFpbmluZyBtZXRob2RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBNYXJ0aWFsIGFydHMgd2VyZSBwcm9tb3RlZCBhcyBhIG1lYW5zIG9mIOKAnHBoeXNpY2FsIHJlbmV3YWwgb2YgdGhlIG5hdGlvbi7igJ08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Gb3Igc29tZSBvbGQgbmV0d29ya3MsIHRoaXMgbWVhbnQgdGhlIGxvc3Mgb2YgdGhlaXIgb3JpZ2luYWwgZnVuY3Rpb27igJRmb3Igb3RoZXJzLCBpdCB3YXMgYW4gb3Bwb3J0dW5pdHkgdG8gY2Ftb3VmbGFnZSB0aGVpciBpbmZsdWVuY2UgYW5kIGJlY29tZSBtb3JlIHB1YmxpY2x5IGFjY2VwdGFibGUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIG5ldHdvcmtzIHRoYXQgc3Vydml2ZWQgdGhlc2UgdXBoZWF2YWxzIGhhZCBvbmUgdGhpbmcgaW4gY29tbW9uOiBhZGFwdGFiaWxpdHkuIFRoZXkgd2VyZSBhYmxlIHRvIHRyYW5zZm9ybSB0aGVtc2VsdmVzIGZyb20gYXJtZWQgZXNjb3J0cyB0byBzcG9ydHMgdGVhY2hlcnMsIGZyb20gdW5kZXJ3b3JsZCBmaWd1cmVzIHRvIOKAnHBhdHJpb3Rz4oCdIGluIHRoZSBzZXJ2aWNlIG9mIGEgd2FybG9yZCDigJMgb3IgdmljZSB2ZXJzYS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIHRocmVlIG5hbWVzIERvbmcgSGFpY2h1YW4sIFpoYW5nIFpoYW9kb25nLCBhbmQgV2FuZyBYaWFuZ3poYWkgcmVwcmVzZW50IGRpZmZlcmVudCBnZW5lcmF0aW9ucyBhbmQgcm9sZXMgd2l0aGluIHRoZSBub3J0aGVybiBDaGluZXNlIG1hcnRpYWwgYXJ0cyBzY2VuZSBiZXR3ZWVuIHRoZSBsYXRlIDE5dGggYW5kIGVhcmx5IDIwdGggY2VudHVyaWVzLiBUaGV5IGV4ZW1wbGlmeSBob3cgbWFzdGVycyBmcm9tIHRoZXNlIG5ldHdvcmtzIG9wZXJhdGVkLCBmb3JnZWQgcmVsYXRpb25zaGlwcywgYW5kIGV4ZXJ0ZWQgaW5mbHVlbmNlIG9uIHRoZWlyIHRpbWUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RG9uZyBIYWljaHVhbiwgd2lkZWx5IGtub3duIGFzIHRoZSBmb3VuZGVyIG9mIEJhZ3VhemhhbmcsIGdyZXcgdXAgaW4gSGViZWkgYW5kIGNhbWUgaW50byBjb250YWN0IHdpdGggdmFyaW91cyBsb2NhbCBtYXJ0aWFsIGFydHMgYXQgYW4gZWFybHkgYWdlLiBBIHJlY3VycmluZyB0aGVtZSBpbiB0aGUgdHJhZGl0aW9ucyBpcyBoaXMgd29yayBhcyBhIHRheCBjb2xsZWN0b3Igb3Igb2ZmaWNpYWwsIGluIHNvbWUgc291cmNlcyBleHBsaWNpdGx5IG9uIGJlaGFsZiBvZiB0aGUgaW1wZXJpYWwgY291cnQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyBwb3NpdGlvbiBicm91Z2h0IGhpbSBpbnRvIGRpcmVjdCBjb250YWN0IHdpdGggbG9jYWwgZWxpdGVzLCBidXQgYWxzbyB3aXRoIG1pbGl0YW50IHZpbGxhZ2UgbWlsaXRpYXMgYW5kIGFybWVkIGVzY29ydCBzZXJ2aWNlcy4gQW55b25lIHdobyB3YW50ZWQgdG8gY29sbGVjdCB0YXhlcyBub3Qgb25seSBoYWQgdG8gYmUgYWJsZSB0byBmaWdodCwgYnV0IGFsc28gaGFkIHRvIG5hdmlnYXRlIHRoZSBjb21wbGV4IHdlYiBvZiBvZmZpY2lhbHMsIHZpbGxhZ2UgZWxkZXJzLCBtZXJjaGFudHMsIGFuZCB1bm9mZmljaWFsIHBvd2VyIGZpZ3VyZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RG9uZyBhcHBhcmVudGx5IG1hZGUgY2xldmVyIHVzZSBvZiB0aGVzZSBjb250YWN0czogd2hlbiBoZSBsYXRlciBjYW1lIHRvIEJlaWppbmcsIGhlIGdhaW5lZCBhY2Nlc3MgdG8gaGlnaC1yYW5raW5nIGNpcmNsZXMsIGluY2x1ZGluZyB0aGUgaG91c2Vob2xkIG9mIFByaW5jZSBTdS4gSGVyZSwgaGlzIHJlcHV0YXRpb24gYXMgYSBmaWdodGVyIHdhcyBjb21iaW5lZCB3aXRoIHRoZSByb2xlIG9mIHRyYWluZXIgZm9yIGVsaXRlIHNlY3VyaXR5IGZvcmNlcyDigJMgYSBwb3NpdGlvbiB0aGF0IGNvdWxkIG9ubHkgYmUgaGVsZCBieSBzb21lb25lIHdobyBlbmpveWVkIHRoZSB0cnVzdCBvZiBib3RoIHRoZSBhZG1pbmlzdHJhdGlvbiBhbmQgbWlsaXRhcnkgY2lyY2xlcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5aaGFuZyBaaGFvZG9uZyBmcm9tIFRpYW5qaW4sIG1hc3RlciBvZiBYaW5neWlxdWFuIGFuZCBCYWd1YXpoYW5nLCByZXByZXNlbnRzIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gWWFtZW4gd29yayBhbmQgdGhlIHNlbWktcHJpdmF0ZSBlY29ub215IG9mIHZpb2xlbmNlLiBCZXNpZGVzIGhpcyBjYXJlZXIgYXMgYSBtYXJ0aWFsIGFydHMgdGVhY2hlciwgaGUgcmVwb3J0ZWRseSB3b3JrZWQgYXMgYSBraW5kIG9mIGJvdW50eSBodW50ZXIgb24gYmVoYWxmIG9mIHRoZSBZYW1lbi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIGFjdGl2aXR5IGludm9sdmVkIHRyYWNraW5nIGRvd24gZnVnaXRpdmUgY3JpbWluYWxzLCBjb2xsZWN0aW5nIGRlbGlucXVlbnQgZGVidHMsIGFuZCB0YWtpbmcgb24gZGVsaWNhdGUgYXNzaWdubWVudHMgdGhhdCByZXF1aXJlZCBwaHlzaWNhbCBlbmZvcmNlbWVudC4gSW4gZG9pbmcgc28sIGhlIG1vdmVkIGluIHRoZSBzYW1lIGNpcmNsZXMgYXMgZXNjb3J0IGxlYWRlcnMsIGhhcmJvciBndWFyZHMsIGFuZCB1bmRlcndvcmxkIGNvbnRhY3RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkF0IHRoYXQgdGltZSwgVGlhbmppbiB3YXMgYSBodWIgZm9yIHRyYWRlLCBmb3JlaWduIGNvbmNlc3Npb25zLCBhbmQgc211Z2dsaW5nIHJvdXRlc+KAlGlkZWFsIGNvbmRpdGlvbnMgZm9yIHNvbWVvbmUgbGlrZSBaaGFuZywgd2hvIGNvbWJpbmVkIG1hcnRpYWwgYXJ0cyBhbmQgbmV0d29ya2luZy4gSGlzIHNjaG9vbCB3YXMgbm90IG9ubHkgYSB0cmFpbmluZyBncm91bmQgYnV0IGFsc28gYSBtZWV0aW5nIHBsYWNlIGZvciBidXNpbmVzc3Blb3BsZSwgb2ZmaWNpYWxzLCBhbmQgZmlnaHRlcnMuIEluIHRoaXMgd2F5LCBoZSBlc3RhYmxpc2hlZCBoaW1zZWxmIHBlcm1hbmVudGx5IGluIHRoZSBjaXR5J3MgcG93ZXIgbGFuZHNjYXBlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPldhbmcgWGlhbmd6aGFpLCBsYXRlciBmb3VuZGVyIG9mIFlpcXVhbiwgYmVsb25nZWQgdG8gdGhlIGdlbmVyYXRpb24gdGhhdCBleHBlcmllbmNlZCB0aGUgdHJhbnNpdGlvbiBmcm9tIHRoZSBsYXRlIGltcGVyaWFsIGVjb25vbXkgb2YgdmlvbGVuY2UgdG8gdGhlIHJlcHVibGljYW4gbWFydGlhbCBhcnRzIGN1bHR1cmUuIEhlIGdyZXcgdXAgaW4gSGViZWksIHRyYXZlbGVkIGFjcm9zcyBDaGluYSBhcyBhIHlvdW5nIG1hbiwgYW5kIHNvdWdodCBvdXQgZXhjaGFuZ2VzIHdpdGggd2VsbC1rbm93biBtYXN0ZXJzLCBpbmNsdWRpbmcgdmV0ZXJhbnMgZnJvbSB0aGUgZXNjb3J0IGFuZCB5YW1lbiBzY2VuZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGVzZSB0cmF2ZWxzIG1hZGUgaGltIGZhbWlsaWFyIHdpdGggdGhlIHJlbW5hbnRzIG9mIHRoZSBvbGQgbmV0d29ya3MgYXMgd2VsbCBhcyB3aXRoIHRoZSBuZXcgc3RydWN0dXJlcyBvZiB0aGUgcmVwdWJsaWNhbiBlcmEsIGluIHdoaWNoIG1hcnRpYWwgYXJ0cyB3ZXJlIGluY3JlYXNpbmdseSBlbWJlZGRlZCBpbiBtaWxpdGFyeSB0cmFpbmluZyBhbmQgcHVibGljIHNwb3J0cyBjbHVicy4gSGlzIGFiaWxpdHkgdG8gdHJhbnNsYXRlIHRyYWRpdGlvbmFsIHRlY2huaXF1ZXMgaW50byBhIG1vZGVybiBjb25jZXB0IHNob3dzIGhvdyB0aGUgc29jaWFsIGNhcGl0YWwgb2YgdGhlIG9sZCBuZXR3b3JrcyBjb3VsZCBiZSBzYXZlZCBpbnRvIHRoZSBuZXcgZXJhLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDppbWFnZSB7ImlkIjoxMTE4LCJzaXplU2x1ZyI6ImZ1bGwiLCJsaW5rRGVzdGluYXRpb24iOiJub25lIn0gLS0+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBzcmM9Imh0dHBzOi8vYmFndWEtemhhbmcuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDgvWGluaGFpX1Jldm9sdXRpb25faW5fU2hhbmdoYWkuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTExMTgiLz48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5YaW5oYWkgUmV2b2x1dGlvbiAoV2lraXBlZGlhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibGFyZ2UifSAtLT4KPHAgY2xhc3M9Imhhcy1sYXJnZS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2Ygbm9ydGhlcm4gQ2hpbmEgaW4gdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMgd2VyZSBtb3JlIHRoYW4gbWVyZSBhc3NvY2lhdGlvbnMgb2YgZmlnaHRlcnMuIFRoZXkgd2VyZSBzb2NpYWwgaW5zdGl0dXRpb25zIHRoYXQgb3BlcmF0ZWQgaW4gYSBibHVycmVkIHNwYWNlIGJldHdlZW4gb2ZmaWNpYWwgYWRtaW5pc3RyYXRpb24sIGxvY2FsIHNlbGYtb3JnYW5pemF0aW9uLCBhbmQgY3JpbWluYWwgc3RydWN0dXJlcy4gVGhlaXIgbWVtYmVycyBtb3ZlZCBuYXR1cmFsbHkgYmV0d2VlbiB0aGVzZSBzcGhlcmVzIGFuZCB1c2VkIG1hcnRpYWwgYXJ0cyBhcyBib3RoIHBoeXNpY2FsIGFuZCBzeW1ib2xpYyBjYXBpdGFsLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPldoZXRoZXIgYXMgeWFtZW4gcnVubmVycywgZXNjb3J0IGxlYWRlcnMsIG1pbGl0aWFtZW4sIG9yIHRlYWNoZXJzLCB0aGUgbWVuIChhbmQsIGluIHJhcmVyIGNhc2VzLCB3b21lbikgaW4gdGhlc2UgbmV0d29ya3Mga25ldyBob3cgdG8gYXBwbHkgdGhlaXIgc2tpbGxzIGluIGRpZmZlcmVudCBjb250ZXh0cy4gVGhleSBjb3VsZCB3b3JrIGZvciBhIG1hZ2lzdHJhdGUgb25lIHllYXIsIGEgd2FybG9yZCB0aGUgbmV4dCwgYW5kIHNob3J0bHkgdGhlcmVhZnRlciBhcyBpbnN0cnVjdG9ycyBhdCBhIHNwb3J0cyBzY2hvb2wuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyBmbGV4aWJpbGl0eSB3YXMgY3J1Y2lhbCB0byB0aGVpciBzdXJ2aXZhbCBhdCBhIHRpbWUgd2hlbiBwb2xpdGljYWwgb3JkZXJzIGNoYW5nZWQgcmFwaWRseSBhbmQgc3RhdGUgc3RydWN0dXJlcyBkaWQgbm90IGZ1bmN0aW9uIGFjcm9zcyB0aGUgYm9hcmQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QSBrZXkgZWxlbWVudCBvZiB0aGVpciBzdWNjZXNzIGxheSBpbiB0aGVpciBhYmlsaXR5IHRvIGV4ZXJjaXNlIHBvd2VyIHdpdGhvdXQgcHJvdm9raW5nIGNvbXBsZXRlIHJlamVjdGlvbiBieSB0aGUgcG9wdWxhdGlvbiBvciB0aGUgc3RhdGUuIE1hbnkgb2ZmZXJlZCBnZW51aW5lIHByb3RlY3Rpb24sIG1lZGlhdGVkIGNvbmZsaWN0cywgb3IgZ3VhcmFudGVlZCBzYWZlIHRyYWRlIHJvdXRlc+KAlHNlcnZpY2VzIHRoYXQgd2VyZSBub3QgYWx3YXlzIHByb3ZpZGVkIGJ5IG9mZmljaWFsIGF1dGhvcml0aWVzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkF0IHRoZSBzYW1lIHRpbWUsIHRoZSBsaW5lIGJldHdlZW4gZXh0b3J0aW9uLCBzbXVnZ2xpbmcsIGFuZCBwb2xpdGljYWxseSBtb3RpdmF0ZWQgdmlvbGVuY2Ugd2FzIG9mdGVuIGJsdXJyZWQuIFRoZXNlIGdyYXkgYXJlYXMgbWFkZSB0aGUgbmV0d29ya3MgYW4gaW5kaXNwZW5zYWJsZSBidXQgYWxzbyBhbWJpdmFsZW50IHBhcnQgb2YgdGhlIHNvY2lhbCBmYWJyaWMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+V2l0aCB0aGUgY29uc29saWRhdGlvbiBvZiB0aGUgUmVwdWJsaWMgb2YgQ2hpbmEgYW5kIGxhdGVyIHRoZSBQZW9wbGUncyBSZXB1YmxpYywgdGhlIG9sZCBzdHJ1Y3R1cmVzIHdlcmUgbGFyZ2VseSBkaXNzb2x2ZWQgb3IgdHJhbnNmZXJyZWQgdG8gc3RhdGUtY29udHJvbGxlZCBmb3Jtcy4gTWFydGlhbCBhcnRzIHdlcmUgaW5jcmVhc2luZ2x5IHByb21vdGVkIGFzIGEgc3BvcnQsIGhlYWx0aCBwcm9tb3Rpb24sIGFuZCBjdWx0dXJhbCBoZXJpdGFnZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Ib3dldmVyLCB0cmFjZXMgb2YgdGhlIG9sZCBuZXR3b3JrcyBhcmUgc3RpbGwgdmlzaWJsZTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgSW4gdGhlIG1hc3Rlci1zdHVkZW50IHJlbGF0aW9uc2hpcHMsIHdoaWNoIGFyZSBvZnRlbiBjdWx0aXZhdGVkIGxpa2UgZmFtaWx5IG9ibGlnYXRpb25zPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIEluIHRoZSBpbnRlcnR3aW5pbmcgb2YgbWFydGlhbCBhcnRzLCBzZWN1cml0eSBzZXJ2aWNlcywgYW5kIGxvY2FsIGJ1c2luZXNzIGludGVyZXN0czwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBJbiB0aGUgbmFycmF0aXZlIHRyYWRpdGlvbiB0aGF0IGNhc3RzIG1hc3RlcnMgc3VjaCBhcyBEb25nIEhhaWNodWFuLCBaaGFuZyBaaGFvZG9uZywgYW5kIFdhbmcgWGlhbmd6aGFpIGluIGEgc2VtaS1sZWdlbmRhcnkgbGlnaHQ8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5FdmVuIHRob3VnaCB0aGUgcG9saXRpY2FsIGNvbmRpdGlvbnMgYXJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IHRvZGF5LCBjZXJ0YWluIHBhcmFsbGVscyBjYW4gYmUgc2VlbiBpbiBtb2Rlcm4gc2VjdXJpdHkgY29tcGFuaWVzLCBzZW1pLW9mZmljaWFsIGxvY2FsIG9yZ2FuaXphdGlvbnMsIGFuZCB0aGUgcHJpdmF0ZSBtaWxpdGFyeSBhbmQgc2VjdXJpdHkgaW5kdXN0cnk6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIFJlY3J1aXRtZW50IHRocm91Z2ggcGVyc29uYWwgY29udGFjdHM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgVGhlIGNvbWJpbmF0aW9uIG9mIHBoeXNpY2FsIGFiaWxpdGllcyB3aXRoIGxvY2FsIGluZm9ybWF0aW9uIG5ldHdvcmtzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIFRoZSBhYmlsaXR5IHRvIG9wZXJhdGUgaW4gYm90aCBmb3JtYWwgYW5kIGluZm9ybWFsIHBvd2VyIHN0cnVjdHVyZXM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJtZWRpdW0ifSAtLT4KPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIG5vcnRoZXJuIENoaW5hIGF0IHRoYXQgdGltZSBhcmUgYW4gZXhhbXBsZSBvZiBob3cgcGh5c2ljYWwgYWJpbGl0aWVzLCBzb2NpYWwgdGllcywgYW5kIGVjb25vbWljIGludGVyZXN0cyBjYW4gYmUgaW50ZXJkZXBlbmRlbnQuIFRoZXkgc2hvdyB0aGF0IG1hcnRpYWwgYXJ0cyBpbiBDaGluYSB3ZXJlIG5vdCBqdXN0IGEgbWF0dGVyIG9mIHRyYWluaW5nIG9yIHBoaWxvc29waHksIGJ1dCBhIGNlbnRyYWwgc29jaWFsIHJlc291cmNlIHRoYXQgY291bGQgc2hhcGUgbGl2ZXMsIHBvd2VyLCBhbmQgaW5mbHVlbmNlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZWlyIGhpc3RvcnkgaXMgdGh1cyBub3Qgb25seSBhIGNoYXB0ZXIgaW4gdGhlIGRldmVsb3BtZW50IG9mIENoaW5lc2UgbWFydGlhbCBhcnRzLCBidXQgYWxzbyBhIHJlZmxlY3Rpb24gb2YgdGhlIHBvbGl0aWNhbCBhbmQgc29jaWFsIHVwaGVhdmFscyB0aGF0IHNoYXBlZCB0aGUgY291bnRyeSBmcm9tIHRoZSBlbmQgb2YgdGhlIGltcGVyaWFsIGVyYSB0byB0aGUgbW9kZXJuIGRheS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIHsiZm9udFNpemUiOiJsYXJnZSJ9IC0tPgo8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImZvbnRTaXplIjoibWVkaXVtIn0gLS0+CjxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PHN0cm9uZz5QcmltYXJ5IHNvdXJjZXMgLyBDb250ZW1wb3JhcnkgcmVwb3J0czwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBCZWlqaW5nIEdhemV0dGUgKHZhcmlvdXMgZWRpdGlvbnMsIDE4NjDigJMxOTEwKSDigJMgT2ZmaWNpYWwgY291cnQgYnVsbGV0aW5zIG1lbnRpb25pbmcgYWRtaW5pc3RyYXRpdmUgb2ZmaWNpYWxzIGFuZCBzZWN1cml0eSBwZXJzb25uZWwgaW4gbm9ydGhlcm4gQ2hpbmEuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIFlvdW5naHVzYmFuZCwgRi4gRS4gQ2hpbmEgYW5kIHRoZSBGYXIgRWFzdCAoMTg5OSkg4oCTIFRyYXZlbG9ndWUgd2l0aCBkZXNjcmlwdGlvbnMgb2YgYXJtZWQgZXNjb3J0cyBhbmQgbWFydGlhbCBhcnRzIGRlbW9uc3RyYXRpb25zLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBQYXJrZXIsIEUuIEguIENoaW5lc2UgU2VjcmV0IFNvY2lldGllcyAoMTkwMCkg4oCTIEVhcmx5IFdlc3Rlcm4gYWNjb3VudCBvZiBDaGluZXNlIHNlY3JldCBzb2NpZXRpZXMgYW5kIHRoZWlyIGxvY2FsIGluZmx1ZW5jZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgUmVwb3J0cyBmcm9tIHRoZSBOb3J0aCBDaGluYSBIZXJhbGQgKFNoYW5naGFpKSwgMTg3NeKAkzE5MTUg4oCTIE5ld3NwYXBlciBhcnRpY2xlcyBvbiBjcmltZSwgcG9saWNlLCBhbmQgbWFydGlhbCBhcnRzIGRlbW9uc3RyYXRpb25zLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJmb250U2l6ZSI6Im1lZGl1bSJ9IC0tPgo8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjxzdHJvbmc+U2Vjb25kYXJ5IHNvdXJjZXMgLyByZXNlYXJjaCBsaXRlcmF0dXJlPC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIEVzaGVyaWNrLCBKb3NlcGggVy4gVGhlIE9yaWdpbnMgb2YgdGhlIEJveGVyIFVwcmlzaW5nLiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MsIDE5ODcg4oCTIEFib3V0IG1pbGl0aWFzLCBtYXJ0aWFsIGFydHMgZ3JvdXBzLCBhbmQgc2VjcmV0IHNvY2lldGllcyBpbiBub3J0aGVybiBDaGluYSBkdXJpbmcgdGhlIGxhdGUgUWluZyBwZXJpb2QuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIE93bmJ5LCBEYXZpZC4gQnJvdGhlcmhvb2RzIGFuZCBTZWNyZXQgU29jaWV0aWVzIGluIEVhcmx5IGFuZCBNaWQtUWluZyBDaGluYS4gU3RhbmZvcmQgVW5pdmVyc2l0eSBQcmVzcywgMTk5NiDigJMgQW5hbHlzaXMgb2YgdGhlIHJvbGUgb2Ygc3dvcm4gYnJvdGhlcmhvb2RzIGFuZCB0aGVpciBzb2NpYWwgcmVhY2guPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+4oCiIEtlbm5lZHksIEJyaWFuICZhbXA7IEd1bywgRWxpemFiZXRoLiBDaGluZXNlIE1hcnRpYWwgQXJ0cyBUcmFpbmluZyBNYW51YWxzOiBBIEhpc3RvcmljYWwgU3VydmV5LiBOb3J0aCBBdGxhbnRpYyBCb29rcywgMjAwNSDigJMgRG9jdW1lbnRhdGlvbiBvbiBtYXJ0aWFsIGFydHMgcHJhY3RpY2UgaW4gdGhlIGxhdGUgUWluZyBhbmQgZWFybHkgUmVwdWJsaWNhbiBwZXJpb2RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBNb3JyaXMsIEFuZHJldyBELiBNYXJyb3cgb2YgdGhlIE5hdGlvbjogQSBIaXN0b3J5IG9mIFNwb3J0IGFuZCBQaHlzaWNhbCBDdWx0dXJlIGluIFJlcHVibGljYW4gQ2hpbmEuIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBQcmVzcywgMjAwNCDigJMgQ29udGV4dCBvbiBtYXJ0aWFsIGFydHMgYW5kIHBoeXNpY2FsIGN1bHR1cmUgaW4gdGhlIGVhcmx5IDIwdGggY2VudHVyeS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgTG9yZ2UsIFBldGVyIEEuIENoaW5lc2UgTWFydGlhbCBBcnRzOiBGcm9tIEFudGlxdWl0eSB0byB0aGUgVHdlbnR5LUZpcnN0IENlbnR1cnkuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAyMDEyIOKAkyBDb21wcmVoZW5zaXZlIG92ZXJ2aWV3IHdpdGggaGlzdG9yaWNhbCBkZXB0aC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7igKIgSGVubmluZywgU3RhbmxleSBFLiDigJxDaGluZXNlIE1hcnRpYWwgQXJ0cyBpbiB0aGUgTGF0ZSBNaW5nIGFuZCBRaW5nIER5bmFzdGllcy7igJ0gSm91cm5hbCBvZiBBc2lhbiBNYXJ0aWFsIEFydHMgNiwgTm8uIDMgKDE5OTcpOiAzMOKAkzYyLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPuKAoiBXYWtlbWFuLCBGcmVkZXJpYy4gUG9saWNpbmcgU2hhbmdoYWksIDE5MjfigJMxOTM3LiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MsIDE5OTUg4oCTIE9uIHRoZSBvdmVybGFwIGJldHdlZW4gbWFydGlhbCBhcnRzLCBzZWN1cml0eSBmb3JjZXMsIGFuZCBvcmdhbml6ZWQgY3JpbWUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHRlbXBsYXRlZG9jdW1lbnRtZXRhZm9vdG5vdGVzZG9jdW1lbnRibG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3RhZ05hbWVsYXlvdXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEJldHdlZW4gZ292ZXJubWVudCBvZmZpY2VzIGFuZCBiYWNreWFyZHMsIGJldHdlZW4gaW1wZXJpYWwgY29tbWlzc2lvbnMgYW5kIGdhbWJsaW5nIGRlbnM6IGluIHRoZSBsYXRlIDE5dGggYW5kIGVhcmx5IDIwdGggY2VudHVyaWVzLCBub3J0aGVybiBDaGluYSB3YXMgY3Jpc3Njcm9zc2VkIGJ5IGFuIGludmlzaWJsZSBuZXR3b3JrIG9mIG1hcnRpYWwgYXJ0aXN0cywgb2ZmaWNpYWxzLCBzZWNyZXQgc29jaWV0aWVzLCBhbmQgdW5kZXJ3b3JsZCBmaWd1cmVzLiBUaGV5IHdlcmUgZXNjb3J0IGxlYWRlcnMsIHlhbWVuIHJ1bm5lcnMsIHRlbXBsZSBndWFyZHPigJRhbmQgc29tZXRpbWVzIGFsbCBvZiB0aGVzZSBhdCBvbmNlLiBUaGlzIGFydGljbGUgcGFpbnRzIGEgcG9ydHJhaXQgb2YgYSBwYXJhbGxlbCB3b3JsZCBpbiB3aGljaCBmaXN0IHRlY2huaXF1ZXMgd2VyZSBqdXN0IGFzIHZhbHVhYmxlIGFzIGFuIG9mZmljaWFsIHNlYWwuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uaWRzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmFsaWduaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE5vcnRoZXJuIENoaW5hIGluIHRoZSBmaW5hbCBkZWNhZGVzIG9mIHRoZSBRaW5nIER5bmFzdHkgd2FzIGEgY291bnRyeSBpbiB0dXJtb2lsLiBJdCB3YXMgYSB0aW1lIHdoZW4gaW1wZXJpYWwgYXV0aG9yaXR5IHdhcyBmYWx0ZXJpbmcsIGZhbWluZXMgYW5kIHVwcmlzaW5ncyB3ZXJlIHNoYWtpbmcgdGhlIGNvdW50cnksIGFuZCBmb3JlaWduIHBvd2VycyB3ZXJlIGV4cGFuZGluZyB0aGVpciBzcGhlcmVzIG9mIGluZmx1ZW5jZSBpbiB0aGUgcG9ydCBjaXRpZXMuIEluIHRoaXMgZW52aXJvbm1lbnQsIG1hcnRpYWwgYXJ0cyB3ZXJlIG5vdCBhbiBlbGVnYW50IHBhc3RpbWUgZm9yIHdlYWx0aHkgY2l0eSBkd2VsbGVycywgYnV0IGEgdG9vbCBmb3Igc3Vydml2YWwg4oCTIGFuZCBmb3IgbWFueSwgYSB0aWNrZXQgdG8gYSBkYW5nZXJvdXMgYnV0IGx1Y3JhdGl2ZSBuZXR3b3JrIG9mIHBvd2VyLCBtb25leSwgYW5kIGluZmx1ZW5jZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCYWNrIHRoZW4sIHBlb3BsZSBkaWRuJ3QgdHJhaW4gaW4gZ3ltcyBvciBjbHVicy4gTWFydGlhbCBhcnRzIHRvb2sgcGxhY2UgaW4gYmFja3lhcmRzLCB0ZW1wbGUgY29tcGxleGVzLCBkdXN0eSBtYXJrZXRwbGFjZXMsIGFuZCBpbXByb3Zpc2VkIHRyYWluaW5nIGdyb3VuZHMgb24gdGhlIG91dHNraXJ0cyBvZiB0aGUgY2l0eS4gVGhvc2Ugd2hvIG1hc3RlcmVkIGEgcmVjb2duaXplZCB0ZWNobmlxdWUgY291bGQgaGlyZSB0aGVtc2VsdmVzIG91dCBhcyBlc2NvcnQgZ3VhcmRzLCBlbnRlciB0aGUgc2VydmljZSBvZiB0aGUgbG9jYWwgYWRtaW5pc3RyYXRpb24sIG9yIHdvcmsgYXMgZW5mb3JjZXJzIGluIHRoZSBwb3J0IGRpc3RyaWN0cy4gVGhlIGJvdW5kYXJpZXMgYmV0d2VlbiBsZWdhbCBhdXRob3JpdHkgYW5kIHRoZSB1bmRlcndvcmxkIHdlcmUgYXMgZmx1aWQgYXMgdGhlIFllbGxvdyBSaXZlciBpbiB0aGUgcmFpbnkgc2Vhc29uLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXJlIHdlcmUgcGVvcGxlIHdobyBjYXJyaWVkIG91dCBhcnJlc3RzIG9uIGJlaGFsZiBvZiB0aGUgbWFnaXN0cmF0ZSBpbiB0aGUgbW9ybmluZyBhbmQgdXNlZCB0aGUgc2FtZSBmaXN0cyBmb3IgYSBzbXVnZ2xlciBvciBnYW1ibGluZyBib3NzIGluIHRoZSBldmVuaW5nLiBUaGVzZSBkdWFsIHJvbGVzIHdlcmUgbm90IHRoZSBleGNlcHRpb24sIGJ1dCB0aGUgbm9ybS4gSW4gYSByZWdpb24gd2hlcmUgdGhlIHN0YXRlIHdhcyB3ZWFrIGFuZCBkaXN0YW5jZXMgd2VyZSBsb25nLCBtYXJ0aWFsIGFydHMgbmV0d29ya3MgZmlsbGVkIHRoZSBnYXBzIGluIHRoZSBzZWN1cml0eSBhbmQgYWRtaW5pc3RyYXRpdmUgc3lzdGVtIOKAkyBvZnRlbiBpbiB0aGVpciBvd24gdW5pcXVlIHdheS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBub3J0aGVybiBwcm92aW5jZXMgc3VjaCBhcyBaaGlsaSAodG9kYXkncyBIZWJlaSB3aXRoIEJlaWppbmcgYW5kIFRpYW5qaW4pIGFuZCBTaGFuZG9uZyB3ZXJlIHBhcnRpY3VsYXJseSBwcmVkZXN0aW5lZCBmb3Igc3VjaCBzdHJ1Y3R1cmVzLiBUaGlzIGlzIHdoZXJlIG1ham9yIHRyYWRlIGFuZCB0cmFuc3BvcnQgcm91dGVzIGNyb3NzZWQ6IHRoZSBHcmFuZCBDYW5hbCwgdGhlIGNvYXN0YWwgcm91dGVzLCBhbmQgdGhlIHJvYWRzIGNvbm5lY3RpbmcgdGhlIGNhcGl0YWwgd2l0aCB0aGUgcG9ydHMuIE1hcmtldHMsIGNhcmF2YW4gc3RhdGlvbnMsIHdhcmVob3VzZXMsIGFuZCBtZWV0aW5nIHBsYWNlcyBmb3IgYXJtZWQgbWVuIHNwcmFuZyB1cCBhdCB0aGVzZSBqdW5jdGlvbnMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGVtcGxlIGNvdXJ0eWFyZHMgYmVjYW1lIHBsYWNlcyBub3Qgb25seSBmb3IgcHJheWVyIGJ1dCBhbHNvIGZvciB0cmFpbmluZy4gUm9hZHNpZGUgaW5ucyBvZmZlcmVkIG5vdCBvbmx5IHNvdXAgYW5kIGEgYmVkIGJ1dCBhbHNvIGRpc2NyZWV0IGJhY2sgcm9vbXMgd2hlcmUgb3JkZXJzIHdlcmUgZ2l2ZW4uIExhcmdlIGZlc3RpdmFscyBwcm92aWRlZCBjb3ZlciBmb3Igc2VjcmV0IGFncmVlbWVudHMsIGFuZCBtYXN0ZXItZGlzY2lwbGUgcmVsYXRpb25zaGlwcyBzdHJldGNoZWQgaW52aXNpYmxlIHRocmVhZHMgYmV0d2VlbiB2aWxsYWdlcywgdG93bnMsIGFuZCBlbnRpcmUgcHJvdmluY2VzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiB0aGF0IHRpbWUgd2VyZSBjb21wbGV4IHN0cnVjdHVyZXMuIFRoZXkgY29ubmVjdGVkIG1lcmNoYW50IGd1aWxkcywgcmVsaWdpb3VzIGJyb3RoZXJob29kcywgbG9jYWwgbWlsaXRpYXMsIGFuZCBhZG1pbmlzdHJhdGl2ZSBvZmZpY2lhbHMuIEEgbWFzdGVyIGNvdWxkIGJlIGEgdmlsbGFnZSBlbGRlciwgYSB5YW1lbiBlbXBsb3llZSAob2ZmaWNpYWwpLCBhbmQgYSBtZW1iZXIgb2YgYSBzZWNyZXQgc29jaWV0eSBhbGwgYXQgdGhlIHNhbWUgdGltZS4gSGlzIHN0dWRlbnRzLCBpbiB0dXJuLCBicm91Z2h0IGNvbnRhY3RzIGZyb20gdmFyaW91cyBzb2NpYWwgc3RyYXRhOiBmYXJtZXJzLCBzb2xkaWVycywgc211Z2dsZXJzLCBvZmZpY2lhbHPigJRhbGwgZm91bmQgdGhlaXIgcGxhY2UgaW4gdGhpcyBuZXR3b3JrLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXNlIG5ldHdvcmtzIHdlcmUgbm90IG9ubHkgc29jaWFsIGNvbW11bml0aWVzLCBidXQgYWxzbyBlY29ub21pYyBtYWNoaW5lcy4gVGhleSB0aHJpdmVkIG9uIGVzY29ydCBzZXJ2aWNlcywgbWFya2V0IHByb3RlY3Rpb24sIGRlYnQgY29sbGVjdGlvbiwgYW5kIG9jY2FzaW9uYWxseSBzbXVnZ2xpbmcuIEZvciBtYW55LCBtYXJ0aWFsIGFydHMgd2VyZSBub3QganVzdCBhIHRyYWRpdGlvbiwgYnV0IGEgYnVzaW5lc3MgbW9kZWwg4oCTIGEgdG9vbCB0byBndWFyYW50ZWUgc2VjdXJpdHkgYW5kIGluY29tZSBpbiB1bmNlcnRhaW4gdGltZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgaGlzdG9yeSBvZiB0aGVzZSBuZXR3b3JrcyBpcyBtdWNoIG1vcmUgdGhhbiBqdXN0IGEgZm9vdG5vdGUgaW4gQ2hpbmVzZSBtYXJ0aWFsIGFydHMuIEl0IGV4cGxhaW5zIHdoeSBjZXJ0YWluIHN0eWxlcyBlbWVyZ2VkIGluIG5vcnRoZXJuIENoaW5hLCBob3cgdGhleSBzcHJlYWQsIGFuZCB3aHkgc29tZSBtYXN0ZXJzIGJlY2FtZSBsZWdlbmRzIHdoaWxlIG90aGVycyByZW1haW5lZCBpbiB0aGUgc2hhZG93cy4gSXQgYWxzbyBzaG93cyBob3cgY2xvc2VseSB2aW9sZW5jZSwgYWRtaW5pc3RyYXRpb24sIGFuZCB0aGUgdW5kZXJ3b3JsZCB3ZXJlIGludGVydHdpbmVkIOKAkyBhbmQgaG93IG11Y2ggbWFydGlhbCBhcnRzIHdlcmUgcGFydCBvZiB0aGUgc29jaWFsIGFuZCBwb2xpdGljYWwgcG93ZXIgZ2FtZSBhdCB0aGUgdGltZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbiB0aGUgZm9sbG93aW5nIGNoYXB0ZXJzLCB3ZSB0YWtlIGEgbG9vayBiZWhpbmQgdGhlIHNjZW5lcyBvZiB0aGlzIHdvcmxkOiBhdCB0aGUgcG9saXRpY2FsIGZyYW1ld29yaywgdGhlIGNvbXBvc2l0aW9uIG9mIHRoZSBuZXR3b3JrcywgaG93IHRoZXkgZnVuY3Rpb25lZCwgdGhlaXIgY29ubmVjdGlvbnMgdG8gc2VjcmV0IHNvY2lldGllcywgYW5kIHNvbWUgb2YgdGhlIG1vc3QgZmFtb3VzIHByb3RhZ29uaXN0cyBzdWNoIGFzIERvbmcgSGFpY2h1YW4sIFpoYW5nIFpoYW9kb25nLCBhbmQgV2FuZyBYaWFuZ3poYWkuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUbyB1bmRlcnN0YW5kIHRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2YgdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMsIG9uZSBtdXN0IGltYWdpbmUgdGhlIHdvcmxkIGluIHdoaWNoIHRoZXkgZW1lcmdlZDogYW4gZW1waXJlIGluIGl0cyBmaW5hbCBzdGFnZXMsIGEgc29jaWV0eSBpbiB0cmFuc2l0aW9uLCBhbmQgYW4gYWRtaW5pc3RyYXRpb24gdGhhdCBpbiBtYW55IHJlZ2lvbnMgd2FzIGxpdHRsZSBtb3JlIHRoYW4gYSB0aGluIHZlbmVlciBvdmVyIGxvY2FsIGF1dG9ub215LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QnkgdGhlIGVuZCBvZiB0aGUgMTl0aCBjZW50dXJ5LCB0aGUgUWluZyBkeW5hc3R5IHdhcyBubyBsb25nZXIgdGhlIHVuY2hhbGxlbmdlZCBwb3dlciBpdCBvbmNlIGhhZCBiZWVuLiBEZWNhZGVzIG9mIGludGVybmFsIHVwcmlzaW5ncyDigJMgZnJvbSB0aGUgVGFpcGluZyBSZWJlbGxpb24gdG8gdGhlIE5pYW4gUmViZWxsaW9uIOKAkyBoYWQgYmxlZCB0aGUgZW1waXJlIGRyeS4gRGVmZWF0cyBpbiB0aGUgT3BpdW0gV2FycyBhbmQgdGhlIEZpcnN0IFNpbm8tSmFwYW5lc2UgV2FyICgxODk04oCTMTg5NSkgaGFkIGV4cG9zZWQgdGhlIG1pbGl0YXJ5J3Mgd2Vha25lc3MgYW5kIGZvcmNlZCB0aGUgY291bnRyeSBpbnRvIHVuZXF1YWwgdHJlYXRpZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN0YWdOYW1lbGF5b3V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25pZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbiBtYW55IHByb3ZpbmNlcywgaW1wZXJpYWwgYXV0aG9yaXR5IGV4aXN0ZWQgb25seSBvbiBwYXBlci4gTG9jYWwgb2ZmaWNpYWxzIGhhZCB0byBtYWludGFpbiBvcmRlciwgY29sbGVjdCB0YXhlcywgYW5kIHNlY3VyZSB0cmFkZSByb3V0ZXMgd2l0aCBsaW1pdGVkIHJlc291cmNlcy4gVGhpcyB3YXMgb2Z0ZW4gb25seSBwb3NzaWJsZSB3aXRoIHRoZSBoZWxwIG9mIGxvY2FsIGZvcmNlcyB3aWxsaW5nIHRvIHVzZSB2aW9sZW5jZSDigJMgYW5kIHRoaXMgaXMgd2hlcmUgdGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBjYW1lIGludG8gcGxheS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBoZWFydCBvZiBsb2NhbCBhZG1pbmlzdHJhdGlvbiBiZWF0IGluIHRoZSBZYW1lbiwgdGhlIG9mZmljaWFsIHJlc2lkZW5jZSBvZiB0aGUgZGlzdHJpY3QgbWFnaXN0cmF0ZS4gVGhpcyBpcyB3aGVyZSB0YXhlcywganVyaXNkaWN0aW9uLCBhbmQgcG9saWNlIGR1dGllcyBjb252ZXJnZWQuIEhvd2V2ZXIsIHRoZSB5YW1lbiByYXJlbHkgaGFkIGVub3VnaCB0cmFpbmVkIHBlcnNvbm5lbCB0byBjb25zaXN0ZW50bHkgZW5mb3JjZSB0aGUgbGF3cy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGF0IGlzIHdoeSB0aGV5IHJlbGllZCBvbiB5YW1lbiBydW5uZXJzIOKAkyBvZmZpY2lhbHMgd2hvIGNhcnJpZWQgb3V0IGFycmVzdHMsIGNvbGxlY3RlZCB0YXhlcyBhbmQsIGlmIG5lY2Vzc2FyeSwgYWxzbyBjb2xsZWN0ZWQgZGVidHMgb24gYmVoYWxmIG9mIHRoZSBtYWdpc3RyYXRlLiBUaGVzZSBtZW4gd2VyZSBub3QgYWx3YXlzIG9mZmljaWFscyBpbiB0aGUgbW9kZXJuIHNlbnNlLCBidXQgb2Z0ZW4gcmVjcnVpdGVkIGZpZ2h0ZXJzIHdpdGggZ29vZCBsb2NhbCBjb25uZWN0aW9ucy4gSW4gcHJhY3RpY2UsIHRoaXMgbWVhbnQgdGhhdCB0aGV5IHdlcmUgd29ya2luZyBvbiBiZWhhbGYgb2YgdGhlIHN0YXRlIGFuZCBvbiB0aGVpciBvd24gYnVzaW5lc3MgYXQgdGhlIHNhbWUgdGltZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFpoaWxpIChub3cgSGViZWkpIGFuZCBTaGFuZG9uZyB3ZXJlIHBhcnRpY3VsYXJseSBzZW5zaXRpdmU6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIFpoaWxpIHdhcyBob21lIHRvIEJlaWppbmcsIHRoZSBjYXBpdGFsLCBhbmQgd2FzIHRoZSBwb2xpdGljYWwgaGVhcnQgb2YgdGhlIGVtcGlyZS4gQXQgdGhlIHNhbWUgdGltZSwgaXQgd2FzIGxvY2F0ZWQgb24gaW1wb3J0YW50IHRyYWRlIGFuZCBtaWxpdGFyeSByb3V0ZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIFNoYW5kb25nIHdhcyBhZ3JpY3VsdHVyYWxseSByaWNoLCBidXQgYWxzbyBjaGFyYWN0ZXJpemVkIGJ5IGNvYXN0YWwgdHJhZGUgYW5kIGZvcmVpZ24gY29uY2Vzc2lvbnMg4oCTIGEgZ2F0ZXdheSBmb3IgV2VzdGVybiB0cmFkZXJzLCBtaXNzaW9uYXJpZXMsIGFuZCB0aGUgbWlsaXRhcnkuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SW4gYm90aCBwcm92aW5jZXMsIHRoZSBjb21iaW5hdGlvbiBvZiBzdHJhdGVnaWMgaW1wb3J0YW5jZSwgaGlnaCBlY29ub21pYyBhY3Rpdml0eSwgYW5kIHBvbGl0aWNhbCBpbnN0YWJpbGl0eSBtZWFudCB0aGF0IGxvY2FsIHBvd2VyIG5ldHdvcmtzIOKAkyBpbmNsdWRpbmcgbWFydGlhbCBhcnRzIGdyb3VwcyDigJMgd2VyZSBhYmxlIHRvIGV4ZXJ0IGVub3Jtb3VzIGluZmx1ZW5jZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZvciBtZXJjaGFudHMsIGZhcm1lcnMsIGFuZCBjcmFmdHNtZW4sIGFybWVkIHByb3RlY3Rpb24gd2FzIG5vdCBhbiBvcHRpb24gYnV0IGEgbmVjZXNzaXR5LiBSb2JiZXJpZXMgb24gY291bnRyeSByb2FkcywgYXR0YWNrcyBieSByaXZhbCB2aWxsYWdlIGNvbW11bml0aWVzLCBhbmQgZXh0b3J0aW9uIGJ5IGdhbmdzIHdlcmUgcGFydCBvZiBldmVyeWRheSBsaWZlLiBUaG9zZSB3aG8gY291bGQgYWZmb3JkIGl0IGhpcmVkIGd1YXJkcyDigJMgb2Z0ZW4gZnJvbSB0aGUgc2FtZSBuZXR3b3JrcyB0aGF0IHdlcmUgYWxzbyBpbiB0aGUgc2VydmljZSBvZiB0aGUgeWFtZW4uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhpcyBtaXhpbmcgb2YgcHVibGljIG9yZGVyIGFuZCBwcml2YXRlIHVzZSBvZiBmb3JjZSB3YXMgbm90IGFuIGFidXNlIGluIHRoZSBtb2Rlcm4gc2Vuc2UsIGJ1dCBhbiBpbnRlZ3JhbCBwYXJ0IG9mIHRoZSBzeXN0ZW0uIFdpdGhvdXQgdGhlc2Ug4oCcc2VjdXJpdHkgZW50cmVwcmVuZXVycyzigJ0gbWFueSBtYXJrZXRzIHdvdWxkIG5vdCBoYXZlIGZ1bmN0aW9uZWQgYW5kIG1hbnkgY2FyYXZhbnMgd291bGQgbm90IGhhdmUgcmVhY2hlZCB0aGVpciBkZXN0aW5hdGlvbnMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBbGwgdGhlc2UgZmFjdG9yc+KAlHdlYWsgY2VudHJhbCBwb3dlciwgZmxleGlibGUgbG9jYWwgYWRtaW5pc3RyYXRpb24sIGhpZ2ggZGVtYW5kIGZvciBwcm90ZWN0aW9uLCBhbmQgdGhlIHN0cmF0ZWdpYyBsb2NhdGlvbiBvZiBub3J0aGVybiBDaGluYeKAlGNyZWF0ZWQgdGhlIGlkZWFsIGJyZWVkaW5nIGdyb3VuZCBmb3IgY29tcGxleCwgbXVsdGktbGF5ZXJlZCBtYXJ0aWFsIGFydHMgbmV0d29ya3MuIFRoZXkgZmlsbGVkIHRoZSBnYXBzIHRoYXQgdGhlIHN0YXRlIGNvdWxkIG5vdCBvciB3b3VsZCBub3QgY2xvc2UgYW5kIGJlY2FtZSBhbiBpbnRlZ3JhbCBwYXJ0IG9mIHRoZSBzb2NpYWwgZmFicmljLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSBpbiB0aGUgbGF0ZSAxOXRoIGFuZCBlYXJseSAyMHRoIGNlbnR1cmllcyB3ZXJlIG5vdCBhIGhvbW9nZW5lb3VzIGJsb2NrLiBUaGV5IGNvbnNpc3RlZCBvZiBwZW9wbGUgd2hvIGhhZCB2ZXJ5IGRpZmZlcmVudCBwcm9mZXNzaW9ucywgc29jaWFsIHBvc2l0aW9ucywgYW5kIGxpZmUgc3RvcmllcyDigJMgY29ubmVjdGVkIGJ5IGEgY29tbW9uIGFzc2V0OiB0aGUgYWJpbGl0eSB0byB1c2UgdmlvbGVuY2UgYW5kIG1vdmUgaW4gYSBtaWxpZXUgd2hlcmUgbG95YWx0eSwgcmVwdXRhdGlvbiwgYW5kIG5ldHdvcmtzIHdlcmUgbW9yZSBpbXBvcnRhbnQgdGhhbiBvZmZpY2lhbCB0aXRsZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3RhZ05hbWVsYXlvdXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBZYW1lbiBSdW5uZXJzIHN0b29kIGF0IHRoZSBpbnRlcmZhY2UgYmV0d2VlbiBhZG1pbmlzdHJhdGlvbiBhbmQgdGhlIHN0cmVldC4gT2ZmaWNpYWxseSwgdGhleSB3ZXJlIGFzc2lzdGFudHMgdG8gdGhlIG1hZ2lzdHJhdGUsIHJlc3BvbnNpYmxlIGZvciBhcnJlc3RzLCB0YXggYW5kIGRlYnQgY29sbGVjdGlvbiwgb3IgdGhlIGRlbGl2ZXJ5IG9mIG9mZmljaWFsIGluc3RydWN0aW9ucy4gVW5vZmZpY2lhbGx5LCBtYW55IHVzZWQgdGhlaXIgcG9zaXRpb24gdG8gZW5nYWdlIGluIHNpZGUgYnVzaW5lc3NlczogY29sbGVjdGluZyBwcm90ZWN0aW9uIG1vbmV5LCB3b3JraW5nIGFzIHByaXZhdGUgYm9keWd1YXJkcywgb3IgdGFraW5nIG9uIGFzc2lnbm1lbnRzIGZyb20gdGhlIHVuZGVyd29ybGQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uWWFtZW4gKFdpa2lwZWRpYSlpZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRTb21lIG9mIHRoZXNlIHJ1bm5lcnMgd2VyZSB0cmFpbmVkIGZpZ2h0ZXJzLCBvdGhlcnMgaGFkIGxlYXJuZWQgdGhlaXIgc2tpbGxzIG9uIHRoZSBzdHJlZXRzLiBUaGVpciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24g4oCTIHdobyBvd2VkIG1vbmV5IHRvIHdob20sIHdoZXJlIHdhbnRlZCBwZXJzb25zIHdlcmUgc3RheWluZyDigJMgbWFkZSB0aGVtIHNvdWdodC1hZnRlciBwYXJ0bmVycyBmb3IgYm90aCBtZXJjaGFudHMgYW5kIHNlY3JldCBzb2NpZXRpZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBbm90aGVyIGltcG9ydGFudCBncm91cCB3ZXJlIHRoZSBtZW4gb2YgdGhlIEJpYW9qdXMsIHRoZSBlc2NvcnQgYWdlbmNpZXMuIFRoZXkgYWNjb21wYW5pZWQgbWVyY2hhbnQgY2FyYXZhbnMsIHRyYW5zcG9ydGVkIHZhbHVhYmxlIGdvb2RzLCBhbmQgZ3VhcmFudGVlZCBzYWZldHkgb24gb2Z0ZW4gdW5zYWZlIHJvdXRlcy4gVGhlaXIgd29yayBicm91Z2h0IHRoZW0gaW50byBjb250YWN0IHdpdGggYWxsIGtpbmRzIG9mIGFybWVkIGdyb3VwczogYmFuZGl0cywgbWlsaXRpYXMsIGNvbXBldGluZyBlc2NvcnQgY29tcGFuaWVzIOKAkyBhbmQgYWxzbyBjb3JydXB0IG9mZmljaWFscy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCaWFvanVzIHdlcmUgb2Z0ZW4gY2xvc2VseSBhc3NvY2lhdGVkIHdpdGggbWFydGlhbCBhcnRzIHNjaG9vbHMgYmVjYXVzZSB0aGV5IHRyYWluZWQgdGhlaXIgbWVuIGluIGNsb3NlIGNvbWJhdCwgd2VhcG9uIHVzZSwgYW5kIHRhY3RpY3MgYWdhaW5zdCByYWlkcy4gU29tZSBmYW1vdXMgbWFzdGVycywgc3VjaCBhcyBEb25nIEhhaWNodWFuIGxhdGVyIG9uLCB1c2VkIHN1Y2ggY29udGFjdHMgdG8gZXhwYW5kIHRoZWlyIG5ldHdvcmtzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SW4gcG9ydCBjaXRpZXMgc3VjaCBhcyBUaWFuamluLCBhbm90aGVyIGdyb3VwIHBsYXllZCBhbiBpbXBvcnRhbnQgcm9sZTogZG9ja3dvcmtlcnMsIHBvcnRlcnMsIGFuZCBndWlsZCBndWFyZHMuIFRoZXNlIG1lbiBjb250cm9sbGVkIG5vdCBvbmx5IHRoZSBmbG93IG9mIGdvb2RzIGJ1dCBhbHNvIGFjY2VzcyB0byBjZXJ0YWluIHdvcmtwbGFjZXMuIFRob3NlIHdobyBoYWQgaW5mbHVlbmNlIGhlcmUgY291bGQgcGFyYWx5emUgZW50aXJlIHN1cHBseSBjaGFpbnPigJRvciBzZWN1cmUgdGhlbSBpbiBleGNoYW5nZSBmb3IgcGF5bWVudC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYW55IHBvcnQgZ3VhcmRzIGJlbG9uZ2VkIHRvIGluZm9ybWFsIG1hcnRpYWwgYXJ0cyBncm91cHMgdGhhdCBkZWZlbmRlZCB0aGVpciBuZWlnaGJvcmhvb2RzIG9yIHByb3RlY3RlZCB0aGVpciBndWlsZHMgZnJvbSBjb21wZXRpdGlvbi4gSW4gYSBwb3J0IGRpc3RyaWN0LCBpdCB3YXMgY29tbW9uIHRvIHNlZSBhIGZvcm1lciBzb2xkaWVyLCBhIGZpc2hlcm1hbiwgYW5kIGEgY2FyYXZhbiBndWFyZCB0cmFpbmluZyB0b2dldGhlciBpbiB0aGUgc2FtZSB0cmFpbmluZyBoYWxsLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGJhY2tib25lIG9mIHRoZSBuZXR3b3JrcyB3YXMgdGhlIG1hc3Rlci1zdHVkZW50IHJlbGF0aW9uc2hpcC4gQSBtYXN0ZXIgd2FzIG5vdCBvbmx5IGEgdGVhY2hlciwgYnV0IG9mdGVuIGFsc28gYSBqb2IgYnJva2VyLCBhIGd1YXJhbnRvciBvZiBwcm90ZWN0aW9uLCBhbmQgYSBkb29yIG9wZW5lciB0byBjb250YWN0cyBpbiBvdGhlciBjaXRpZXMuIFN0dWRlbnRzIG93ZWQgaGltIG5vdCBvbmx5IHJlc3BlY3QsIGJ1dCBvZnRlbiBhbHNvIGFsbGVnaWFuY2UgaW4gcHJhY3RpY2FsIG1hdHRlcnMg4oCTIGZyb20gZXNjb3J0IGFzc2lnbm1lbnRzIHRvIHBvbGl0aWNhbCBmYXZvcnMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlc2UgcmVsYXRpb25zaGlwcyBvZnRlbiBzcGFubmVkIGdlbmVyYXRpb25zLiBBIHN0dWRlbnQgY291bGQgYmVjb21lIGEgbWFzdGVyIGhpbXNlbGYgeWVhcnMgbGF0ZXIgYW5kIHN0aWxsIHNob3cgbG95YWx0eSB0byBoaXMgb3JpZ2luYWwgdGVhY2hlciBvciBoaXMgZmFtaWx5LiBUaGlzIGNyZWF0ZWQgbmV0d29ya3MgdGhhdCBjb25uZWN0ZWQgdmlsbGFnZXMsIGNpdGllcywgYW5kIHByb3ZpbmNlcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXNlIG5ldHdvcmtzIGhhZCBubyBjbHViIHN0cnVjdHVyZSwgbm8gbWVtYmVyc2hpcCBjYXJkcywgYW5kIG5vIGNlbnRyYWwgc3RhdHV0ZXMuIFRoZXkgd2VyZSBsb29zZSBidXQgcm9idXN0IG5ldHdvcmtzIGJhc2VkIG9uIHRydXN0LCBjb21tb24gaW50ZXJlc3RzLCBhbmQgYSBjbGVhciBoaWVyYXJjaHkuIEFueW9uZSB3aG8gd2FudGVkIHRvIGJlbG9uZyBoYWQgdG8gcHJvdmUgdGhlbXNlbHZlcyDigJMgb24gdGhlIG1hdCwgb24gdGhlIHN0cmVldCwgYW5kIGluIHRoZWlyIGRlYWxpbmdzIHdpdGggdGhlIHJpZ2h0IHBlb3BsZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2Ygbm9ydGhlcm4gQ2hpbmEgZnVuY3Rpb25lZCBsaWtlIG11bHRpLWxheWVyZWQgc2VydmljZSBjb21wYW5pZXMg4oCTIG9ubHkgd2l0aG91dCBhIGNsZWFyIGJvdW5kYXJ5IGJldHdlZW4gbGVnYWwgYW5kIGlsbGVnYWwuIFRoZXkgb2ZmZXJlZCBwcm90ZWN0aW9uLCBvcmdhbml6ZWQgdHJhbnNwb3J0YXRpb24sIGdhdGhlcmVkIGluZm9ybWF0aW9uLCBhbmQgY291bGQgYWxzbyB1c2UgdmlvbGVuY2UgaWYgbmVjZXNzYXJ5LiBUaGVpciBzdHJlbmd0aCBsYXkgbm90IG9ubHkgaW4gdGhlIGZpc3RzIG9mIHRoZWlyIG1lbWJlcnMsIGJ1dCBhbHNvIGluIHRoZWlyIHN0cnVjdHVyZTogbW9iaWxlLCBhZGFwdGFibGUsIGFuZCBuZXR3b3JrZWQgYWNyb3NzIG1hbnkgbG9jYXRpb25zLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50U2VjcmV0IHNpZ25zLCBzcGVjaWZpYyBncmVldGluZ3MsIG9yIHBocmFzZXMgaGVscGVkIG1lbWJlcnMgaWRlbnRpZnkgZWFjaCBvdGhlci4gVGhpcyBhbGxvd2VkIGFuIGVzY29ydCBsZWFkZXIgaW4gU2hhbmRvbmcgdG8gcmVjb2duaXplIGEgZG9jayB3b3JrZXIgaW4gVGlhbmppbiBhcyBhIOKAnGJyb3RoZXIgaW4gdGhlIGNpcmNsZeKAnSB3aXRob3V0IG91dHNpZGVycyBub3RpY2luZy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFlvdSBjb3VsZG4ndCBqdXN0IGpvaW4gdGhlc2UgbmV0d29ya3MgYnkgc2lnbmluZyB1cC4gTmV3IG1lbWJlcnMgd2VyZSBhbG1vc3QgYWx3YXlzIGludHJvZHVjZWQgYnkgc29tZW9uZSB3aG8gd2FzIGFscmVhZHkgcGFydCBvZiB0aGUgbmV0d29yay4gVGhlIGZpcnN0IHN0ZXAgd2FzIG9mdGVuIHRyYWluaW5nIHdpdGggYSByZWNvZ25pemVkIG1hc3Rlci4gVGhvc2Ugd2hvIHNob3dlZCBub3Qgb25seSB0YWxlbnQgYnV0IGFsc28gbG95YWx0eSB3ZXJlIHJlY29tbWVuZGVkIHRvIG90aGVycy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBzdWNjZXNzIG9mIGEgbmV0d29yayBkZXBlbmRlZCBvbiBleGVyY2lzaW5nIHBvd2VyIHdpdGhvdXQgYXR0cmFjdGluZyB1bm5lY2Vzc2FyeSBhdHRlbnRpb24gZnJvbSB0aGUgYXV0aG9yaXRpZXMgb3Igcml2YWwgZ3JvdXBzLiBUb28gbXVjaCBvcGVuIHZpb2xlbmNlIGNvdWxkIHByb3Zva2UgYSBwdW5pdGl2ZSBleHBlZGl0aW9uIGJ5IHRoZSB5YW1lbiBvciB0aGUgaW50ZXJ2ZW50aW9uIG9mIGEgc2VjcmV0IHNvY2lldHkuIFRoYXQgaXMgd2h5IGRpcGxvbWFjeSB3YXMganVzdCBhcyBpbXBvcnRhbnQgd2l0aGluIHRoZXNlIHN0cnVjdHVyZXMgYXMgbWFydGlhbCBhcnRzLiBBbiBleHBlcmllbmNlZCBtYXN0ZXIgY291bGQgc2V0dGxlIGNvbmZsaWN0cyBiZWZvcmUgdGhleSBlc2NhbGF0ZWQg4oCTIG9mdGVuIHRocm91Z2ggcGVyc29uYWwgbWVldGluZ3Mgd2hlcmUgdGVhLCBwb2xpdGUgcGhyYXNlcyBhbmQgc3VidGxlIHRocmVhdHMgZmxvd2VkIHRvZ2V0aGVyLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QWx0aG91Z2ggbWFueSBtZW1iZXJzIHdlcmUgdGhlcmUgZm9yIHRoZSBpbmNvbWUsIG1vbmV5IHdhcyBub3QgdGhlIG9ubHkgY3VycmVuY3kuIEhvbm9yIGFuZCByZXB1dGF0aW9uIGRldGVybWluZWQgd2hvIGdvdCB0aGUgZ29vZCBqb2JzLiBBbnlvbmUgd2hvIGJvdGNoZWQgYW4gZXNjb3J0IGpvYiBvciBjaGVhdGVkIGEgY2xpZW50IHJpc2tlZCBub3Qgb25seSB0aGVpciBwbGFjZSBpbiB0aGUgbmV0d29yaywgYnV0IHBvc3NpYmx5IHRoZWlyIGxpZmUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QSBzdHJvbmcgcmVwdXRhdGlvbiwgb24gdGhlIG90aGVyIGhhbmQsIGNvdWxkIGxhc3QgZm9yIGRlY2FkZXMuIFNvbWUgbWFzdGVycyBzdGlsbCByZWNlaXZlZCBnaWZ0cyBvciBmYXZvcnMgaW4gdGhlaXIgb2xkIGFnZSBmcm9tIG1lcmNoYW50cyB3aG9zZSBncmFuZGZhdGhlcnMgdGhleSBoYWQgb25jZSBwcm90ZWN0ZWQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBIHdlbGwta25vd24gbWFzdGVyIG9yIGV4cGVyaWVuY2VkIGZpZ2h0ZXIgb2Z0ZW4gZGlkIG5vdCBldmVuIG5lZWQgdG8gc3RyaWtlIOKAkyBoaXMgbmFtZSBhbG9uZSB3YXMgZW5vdWdoIHRvIGF2b2lkIGNvbmZsaWN0LiBNZXJjaGFudHMgcHJlZmVycmVkIHRvIHBheSBwcm90ZWN0aW9uIG1vbmV5IHRvIHNvbWVvbmUgd2l0aCBhIGZlYXJlZCByZXB1dGF0aW9uIHJhdGhlciB0aGFuIHJpc2sgcHJvdm9raW5nIHRoZWlyIHdyYXRoLiBSaXZhbHMgdGhvdWdodCB0d2ljZSBiZWZvcmUgbWVzc2luZyB3aXRoIGEgbWFuIHdobyB3YXMgcnVtb3JlZCB0byBoYXZlIHJlbWFpbmVkIHVuZGVmZWF0ZWQgaW4gYSBkb3plbiBmaWdodHMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhpcyByZXB1dGF0aW9uIHdhcyBidWlsdCBub3Qgb25seSB0aHJvdWdoIHZpY3RvcmllcyBpbiBjb21iYXQsIGJ1dCBhbHNvIHRocm91Z2ggYmVoYXZpb3Igb3V0c2lkZSB0aGUgdHJhaW5pbmcgaGFsbDogZ2VuZXJvc2l0eSB0b3dhcmRzIHN0dWRlbnRzLCBob25vciBpbiBidXNpbmVzcywga2VlcGluZyBwcm9taXNlcy4gQSBzaW5nbGUgYmV0cmF5YWwgY291bGQgZGVzdHJveSBldmVyeXRoaW5nLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzdXJsYWx0Y2FwdGlvbkxpw7ogU2jDrGppw6kgKOWKieWjq+WCkSwgMTg2NOKAkzE5MzApIGFuIGVzY29ydCBndWFyZCB3b3JraW5nIGZvciBUw7NuZ3jDrG5nZ8WNbmcgKOWQjOiIiOWFrCksIDxicj5Ub25neGluZ2dvbmcgTXVzZXVtLCBQaW5neWFvIChMYXVyZW50IENoaXJjb3AtUmV5ZXM7IElsbGVnYWwgQ2FyYXZhbiBUcmFkZSBhbmQgT3V0bGF3IEFybWVkIEVzY29ydHMgaW4gdGhlIFFpbmcgRHluYXN0eTogQ3JpdGljYWwgQW5hbHlzaXMgb2YgVHdvIDE4dGggQ2VudHVyeSBNZW1vcmlhbHMgTGF1cmVudCBDaGlyY29wLVJleWVzKWlkc2l6ZVNsdWdsaW5rRGVzdGluYXRpb25pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Q2VydGFpbiBtYXJ0aWFsIGFydHMgd2VyZSBjb25zaWRlcmVkIHBhcnRpY3VsYXJseSBwcmVzdGlnaW91cy4gU3R5bGVzIHN1Y2ggYXMgQmFndWF6aGFuZywgWGluZ3lpcXVhbiwgb3IgVG9uZ2JlaXF1YW4gd2VyZSBrbm93biBpbiBub3J0aGVybiBDaGluYSBub3Qgb25seSBmb3IgdGhlaXIgZWZmZWN0aXZlbmVzcyBidXQgYWxzbyBmb3IgdGhlaXIgZXhjbHVzaXZpdHkuIFRob3NlIHdobyBtYXN0ZXJlZCBvbmUgb2YgdGhlc2Ugc3R5bGVzIOKAkyBhbmQgZGVtb25zdHJhdGVkIHRoaXMgaW4gcGVyZm9ybWFuY2VzIG9yIHJlYWwtbGlmZSBjb25mcm9udGF0aW9ucyDigJMgZm91bmQgaXQgZWFzaWVyIHRvIGVudGVyIGhpZ2gtcmFua2luZyBuZXR3b3Jrcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYW55IHlhbWVuIHJ1bm5lcnMgYW5kIGVzY29ydCBsZWFkZXJzIHVzZWQgdGhlaXIgc2tpbGxzIHRvIGdhaW4gYWNjZXNzIHRvIHdlYWx0aHkgY2xpZW50cy4gQSBtYXN0ZXIgd2hvIHRyYWluZWQgdGhlIGJvZHlndWFyZHMgb2YgYSBwcm92aW5jaWFsIG9mZmljaWFsLCBmb3IgZXhhbXBsZSwgY291bGQgYmUgYWxtb3N0IGNlcnRhaW4gb2YgcmVjZWl2aW5nIHBvbGl0aWNhbCBiYWNraW5nIGluIHJldHVybi5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBib25kIGJldHdlZW4gbWFzdGVyIGFuZCBzdHVkZW50IHdhcyBvZnRlbiBjbG9zZXIgdGhhbiB0aGF0IGJldHdlZW4gYnVzaW5lc3MgcGFydG5lcnMgb3IgZXZlbiBmYW1pbHkgbWVtYmVycy4gQSBzdHVkZW50IHdobyByZW1haW5lZCBsb3lhbCB0byBoaXMgdGVhY2hlciBjb3VsZCBjb3VudCBvbiBnZXR0aW5nIHdvcmssIGFjY29tbW9kYXRpb24sIG9yIHByb3RlY3Rpb24gd2hlbiBuZWVkZWQuIENvbnZlcnNlbHksIGEgbWFzdGVyIGNvdWxkIGV4ZXJ0IGluZmx1ZW5jZSBpbiBvdGhlciBjaXRpZXMgdGhyb3VnaCBoaXMgc3R1ZGVudHPigJRlYWNoIHdlbGwtcGxhY2VkIHN0dWRlbnQgd2FzIGxpa2UgYW4g4oCcaW52ZXN0bWVudCBwb2ludOKAnSBpbiB0aGUgdGVhY2hlcidzIHNvY2lhbCBjYXBpdGFsLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXNlIGJvbmRzIG9mdGVuIGxhc3RlZCBmb3IgZ2VuZXJhdGlvbnMuIEEgZ3JhbmRzb24gY291bGQgc3RpbGwgYmVuZWZpdCBmcm9tIHRoZSByZWxhdGlvbnNoaXBzIGhpcyBncmFuZGZhdGhlciBoYWQgZXN0YWJsaXNoZWQgYXMgYSBzdHVkZW50IG9mIGEgZmFtb3VzIG1hc3Rlci5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEluIGEgdGltZSB3aXRob3V0IGhlYWx0aCBvciBhY2NpZGVudCBpbnN1cmFuY2UsIG1hcnRpYWwgYXJ0cyBjb3VsZCBhY3R1YWxseSBtZWFuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbGlmZSBhbmQgZGVhdGguIFRob3NlIHdobyB3b3JrZWQgaW4gZGFuZ2Vyb3VzIHByb2Zlc3Npb25z4oCUd2hldGhlciBhcyBjYXJhdmFuIGxlYWRlcnMsIGRvY2t3b3JrZXJzLCBvciBiYWlsaWZmc+KAlGhhZCB0byByZWNrb24gd2l0aCByb2JiZXJpZXMsIGZpZ2h0cywgYW5kIHNwb250YW5lb3VzIGFsdGVyY2F0aW9ucy4gUGh5c2ljYWwgZml0bmVzcywgcXVpY2sgcmVhY3Rpb25zLCBhbmQgdGhlIGNvdXJhZ2UgdG8gdXNlIGZvcmNlIHdlcmUgbm90IG9ubHkgcGVyc29uYWwgYWR2YW50YWdlcyBidXQgYWxzbyBxdWFsaXRpZXMgdGhhdCBlbmhhbmNlZCBzb2NpYWwgc3RhdHVzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSByYXJlbHkgc3Rvb2QgYWxvbmUuIFRoZXkgd2VyZSBlbWJlZGRlZCBpbiBhIG5ldHdvcmsgb2Ygc2VjcmV0IHNvY2lldGllcywgcmVsaWdpb3VzIGJyb3RoZXJob29kcywgc2VjdHMsIGFuZCBjcmltaW5hbCBzeW5kaWNhdGVzLCBtYW55IG9mIHdoaWNoIGhhZCBleGlzdGVkIGZvciBjZW50dXJpZXPigJRzb21lIHdpdGggaWRlb2xvZ2ljYWwgcm9vdHMsIG90aGVycyBwdXJlbHkgcHJvZml0LW9yaWVudGVkLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SW4gbm9ydGhlcm4gQ2hpbmEsIGZvdXIgc3RydWN0dXJlcyBpbiBwYXJ0aWN1bGFyIHBsYXllZCBhIHJvbGU6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIDxzdHJvbmc+VGhlIOKAnEJyb3RoZXJob29kcyBvZiB0aGUgR3JlZW4gRm9yZXN0c+KAnSAoTMO8bGluKTwvc3Ryb25nPiDigJMgbG9vc2VseSBvcmdhbml6ZWQgYmFuZGl0IGdhbmdzIHRoYXQgaGlkIGluIGluYWNjZXNzaWJsZSByZWdpb25zIHN1Y2ggYXMgbW91bnRhaW5zIG9yIGZvcmVzdHMgYW5kIG9jY2FzaW9uYWxseSB3b3JrZWQgYXMgbWVyY2VuYXJpZXMgb3IgZXNjb3J0cy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgPHN0cm9uZz5UaGUg4oCcSGVhdmVuIGFuZCBFYXJ0aCBTb2NpZXR54oCdIChUaWFuZGlodWkpIDwvc3Ryb25nPuKAkyBvcmlnaW5hbGx5IGZvdW5kZWQgd2l0aCBhbnRpLU1hbmNodSBpZGVhbHMsIGxhdGVyIG9mdGVuIGludm9sdmVkIGluIHNtdWdnbGluZywgZ2FtYmxpbmcsIGFuZCBwcm90ZWN0aW9uIHJhY2tldHMuSG9uZ21lbiAo5rSq6ZaAKSBPcmlnaW5hbGx5IGVtZXJnaW5nIGZyb20gdGhlIHJlc2lzdGFuY2UgYWdhaW5zdCB0aGUgUWluZyBkeW5hc3R5LGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiA8c3Ryb25nPlRoZSBIb25nbWVuPC9zdHJvbmc+IDxzdHJvbmc+KOa0qumWgCk8L3N0cm9uZz4gcmV0YWluZWQgYSByZXZvbHV0aW9uYXJ5IGF1cmEuIEluIHRoZSBsYXRlIFFpbmcgcGVyaW9kLCB0aGV5IHdlcmUgcGFydGx5IGludGVncmF0ZWQgaW50byBwb3J0IGFuZCB0cmFuc3BvcnQgd29yayBpbiBzb3V0aGVybiBhbmQgZWFzdGVybiBDaGluYSwgYW5kIHBhcnRseSBpbnZvbHZlZCBpbiBzbXVnZ2xpbmcgYW5kIGdhbWJsaW5nLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiA8c3Ryb25nPkdyZWVuIEdhbmcgKOmdkuW5qyk8L3N0cm9uZz4gT3JpZ2luYWxseSBmb3JtZWQgZnJvbSBib2F0IGNyZXdzIG9uIHRoZSBJbXBlcmlhbCBDYW5hbCwgaXQgYmVjYW1lIGEgcG93ZXJmdWwgZm9yY2UgaW4gU2hhbmdoYWksIGNvb3BlcmF0aW5nIHdpdGggYm90aCB0aGUgS3VvbWludGFuZyAoS01UKSBhbmQgdGhlIGZvcmVpZ24gY29uY2Vzc2lvbiBwb2xpY2UuIEl0IGNvbnRyb2xsZWQgdGhlIG9waXVtIHRyYWRlLCBnYW1ibGluZywgYW5kIHByb3RlY3Rpb24gbW9uZXnigJRhbmQgYWxzbyBlbXBsb3llZCBtYXJ0aWFsIGFydHMgZXhwZXJ0cyB0byBlbmZvcmNlIGl0cyBjb250cm9sLiBUaGVpciBpbmZsdWVuY2UgZXh0ZW5kZWQgYmV5b25kIHRyYWRlIHJvdXRlcyB0byBUaWFuamluLCBjb25uZWN0aW5nIHRoZSBub3J0aCB3aXRoIHRoZSBzb3V0aC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGVzZSBvcmdhbml6YXRpb25zIGhhZCB0aGVpciBvd24gcml0dWFscywgaWRlbnRpZnlpbmcgbWFya3MsIGFuZCBpbml0aWF0aW9uIHJpdGVzLCBhbmQgdGhleSBvZnRlbiBvdmVybGFwcGVkIHdpdGggbWFydGlhbCBhcnRzIHNjaG9vbHMg4oCTIGVpdGhlciBiZWNhdXNlIHRoZSBtYXN0ZXJzIHRoZW1zZWx2ZXMgd2VyZSBtZW1iZXJzIG9yIGJlY2F1c2UgdGhlaXIgc3R1ZGVudHMgd2VyZSByZWNydWl0ZWQgdGhlcmUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRTZWN0cyB3aXRoIERhb2lzdCBvciBCdWRkaGlzdCBpbmZsdWVuY2VzIG9mZmVyZWQgbm90IG9ubHkgc3Bpcml0dWFsIGd1aWRhbmNlIGJ1dCBhbHNvIGEgc29jaWFsIHNhZmV0eSBuZXQuIFRlbXBsZXMgc2VydmVkIGFzIG1lZXRpbmcgcGxhY2VzIHdoZXJlIHBlb3BsZSBjb3VsZCBkaXNjdXNzIG1hdHRlcnMsIHRyYWluLCBvciBhcnJhbmdlIGFzc2lnbm1lbnRzLiBTb21lIG9mIHRoZXNlIGdyb3VwcyBtaXhlZCByZWxpZ2lvdXMgdGVhY2hpbmdzIHdpdGggbWlsaXRhbnQgc3RydWN0dXJlcywgc3VjaCBhcyB0aGUgPHN0cm9uZz7igJxXaGl0ZSBMb3R1cyBNb3ZlbWVudCzigJ08L3N0cm9uZz4gd2hpY2ggd2FzIHJlcGVhdGVkbHkgaW52b2x2ZWQgaW4gdXByaXNpbmdzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZvciBtYW55IGZpZ2h0ZXJzLCBiZWxvbmdpbmcgdG8gYSBzZWN0IHdhcyBub3QgaW5jb21wYXRpYmxlIHdpdGggdGhlaXIgd29yayBhcyB5YW1lbiBydW5uZXJzIG9yIGVzY29ydCBsZWFkZXJzIOKAkyBpdCB3YXMgYW4gYWRkaXRpb25hbCBib25kIHRoYXQgZW5zdXJlZCBsb3lhbHR5LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERhb2lzdCBzZWN0cyBzdWNoIGFzIHRoZSA8c3Ryb25nPkxvbmdtZW4gKERyYWdvbiBHYXRlKTwvc3Ryb25nPiBTY2hvb2wgcGxheWVkIGEgcGFydGljdWxhcmx5IGltcG9ydGFudCByb2xlLiBUaGVpciB0ZW1wbGVzIGFuZCBtb25hc3RlcmllcyB3ZXJlIHNhZmUgaGF2ZW5zIGZvciB0cmF2ZWxlcnMsIG1lcmNoYW50cywgYW5kIHdhcnJpb3JzLiBBbnlvbmUgaW4gU2hlbiBDb3VudHkgd2hvIGJlbG9uZ2VkIHRvIHN1Y2ggYSBjaXJjbGUgY291bGQgcmVseSBvbiB0aGUgc2FtZSBzeW1ib2xzLCByaXR1YWxzLCBhbmQgY29kZXMgaW4gU2hhbmdoYWnigJRhbmQgdGh1cyBnYWluIGFjY2VzcyB0byBjbG9zZWQgY2lyY2xlcyBldmVuIHdpdGhvdXQgYSBmb3JtYWwgcmVjb21tZW5kYXRpb24uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGVtcGxlcyBhcyBtZWV0aW5nIHBsYWNlcyBpbiB1cmJhbiBhcmVhc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEhpc3RvcmljYWwgc3R1ZGllcyBzaG93IHRoYXQgaW4gdGhlIGxhdGUgUWluZyBwZXJpb2QgYW5kIGR1cmluZyB0aGUgUmVwdWJsaWMgZXJhLCBzbWFsbGVyIERhb2lzdCBhbmQgQnVkZGhpc3QgdGVtcGxlcyB3ZXJlIHVzZWQgZm9yIG11bHRpcGxlIHB1cnBvc2VzLCBlc3BlY2lhbGx5IGluIGNpdGllcyBzdWNoIGFzIFNoYW5naGFpIGFuZCBUaWFuamluOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBhcyBwbGFjZXMgb2YgcHJheWVyIGFuZCBwaWxncmltYWdlLGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBhcyBtZWV0aW5nIHBsYWNlcyBmb3IgbG9jYWwgZ3VpbGRzLGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBhcyBkaXNjcmVldCBtZWV0aW5nIHBsYWNlcyBmb3IgYWN0b3JzIHdobyBkaWQgbm90IHdhbnQgdG8gYXBwZWFyIGluIHB1YmxpYy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCcmlhbiBHLiBNYXJ0aW4gKFRoZSBTaGFuZ2hhaSBHcmVlbiBHYW5nOiBQb2xpdGljcyBhbmQgT3JnYW5pemVkIENyaW1lLCAxOTE54oCTMTkzNywgMTk5NikgZG9jdW1lbnRzIHRoYXQgdGhlIEdyZWVuIEdhbmcgdXNlZCB0ZW1wbGVzIGluIFNoYW5naGFpJ3MgaW50ZXJuYXRpb25hbCBjb25jZXNzaW9ucyB0byBob2xkIG1lZXRpbmdzIHdoZXJlIEtNVCBvZmZpY2lhbHMsIHVuaW9uIGxlYWRlcnMsIGFuZCB1bmRlcndvcmxkIHJlcHJlc2VudGF0aXZlcyBjYW1lIHRvZ2V0aGVyLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZyZWRlcmljIFdha2VtYW4gSnIuIChQb2xpY2luZyBTaGFuZ2hhaSAxOTI34oCTMTkzNywgMTk5NSkgZGVzY3JpYmVzIGhvdyB0aGUgRnJlbmNoIGFuZCBpbnRlcm5hdGlvbmFsIGNvbmNlc3Npb24gcG9saWNlIHdlcmUgcmVsdWN0YW50IHRvIGVudGVyIHN1Y2ggcmVsaWdpb3VzIHNpdGVzIOKAkyBhIHJlbHVjdGFuY2UgdGhhdCBtYWRlIHRoZXNlIHBsYWNlcyBhdHRyYWN0aXZlIHZlbnVlcyBmb3IgY29uZmlkZW50aWFsIG1lZXRpbmdzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Q2VydGFpbiBjcmltaW5hbCBhY3Rpdml0aWVzIGJlbmVmaXRlZCBkaXJlY3RseSBmcm9tIHRoZSBza2lsbHMgb2YgbWFydGlhbCBhcnRzIG5ldHdvcmtzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBTbXVnZ2xpbmcg4oCTIGZpZ2h0ZXJzIGtuZXcgdGhlIGhpZGRlbiByb3V0ZXMgYW5kIGNvdWxkIHByb3RlY3QgY29udm95cy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgR2FtYmxpbmcgYW5kIG9waXVtIGRlbnMg4oCTIG1hcnRpYWwgYXJ0cyBwcmFjdGl0aW9uZXJzIG9mdGVuIGFjdGVkIGFzIGJvdW5jZXJzIG9yIGVuZm9yY2VycyBoZXJlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBFeHRvcnRpb24g4oCTIOKAnHByb3RlY3Rpb27igJ0gYWdhaW5zdCBnYW5ncyB3YXMgYSBsdWNyYXRpdmUgYnVzaW5lc3MsIGFuZCBtYXJ0aWFsIGFydGlzdHMgbWFkZSB0aGUgdGhyZWF0cyBwYXJ0aWN1bGFybHkgY3JlZGlibGUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN0YWdOYW1lbGF5b3V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgY2xvc2UgY29ubmVjdGlvbiB0byB0aGUgdW5kZXJ3b3JsZCBtZWFudCB0aGF0IHRoZSBzYW1lIG1lbiB3aG8gZXNjb3J0ZWQgZ29vZHMgZHVyaW5nIHRoZSBkYXkgc3Rvb2QgZ3VhcmQgaW4gYSBnYW1ibGluZyBob3VzZSBhdCBuaWdodC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzdGFnTmFtZWxheW91dGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Tm90IGFsbCBuZXR3b3JrcyBvcGVyYXRlZCBzb2xlbHkgZm9yIHByb2ZpdC4gU29tZSBzZWNyZXQgc29jaWV0aWVzIGN1bHRpdmF0ZWQgaWRlb2xvZ2ljYWwgbmFycmF0aXZlcyDigJMgc3VjaCBhcyB0aGUgcmV0dXJuIG9mIHRoZSBNaW5nIGR5bmFzdHkgb3IgdGhlIGZpZ2h0IGFnYWluc3QgZm9yZWlnbiBwb3dlcnMuIFRoZXNlIGlkZWFzIHByb3ZpZGVkIGEgbW9yYWwganVzdGlmaWNhdGlvbiBmb3IgdmlvbGVuY2UgYW5kIGhlbHBlZCB0byBiaW5kIG1lbWJlcnMgdG9nZXRoZXIuIEluIHByYWN0aWNlLCB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIGlkZW9sb2d5IGFuZCBidXNpbmVzcyBxdWlja2x5IGJlY2FtZSBibHVycmVkOiBhIOKAnHBhdHJpb3TigJ0gY291bGQgbGVhZCBhbiBhbnRpLWZvcmVpZ24gZGVtb25zdHJhdGlvbiBpbiB0aGUgbW9ybmluZyBhbmQgc2VjdXJlIGEgc211Z2dsaW5nIHJvdXRlIGluIHRoZSBhZnRlcm5vb24uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uaWRzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgY29ubmVjdGlvbiBiZXR3ZWVuIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBhbmQgc2VjcmV0IHNvY2lldGllcyB3YXMgc3ltYmlvdGljOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBUaGUgZmlnaHRlcnMgb2ZmZXJlZCBwaHlzaWNhbCBwb3dlciwgZGlzY2lwbGluZSwgYW5kIGxvY2FsIHJvb3RzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBUaGUgc2VjcmV0IHNvY2lldGllcyBvZmZlcmVkIHByb3RlY3Rpb24gZnJvbSBzdGF0ZSBwZXJzZWN1dGlvbiwgYWNjZXNzIHRvIHJlc291cmNlcywgYW5kIHN1cHJhcmVnaW9uYWwgY29udGFjdHMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QW4gZXhwZXJpZW5jZWQgbWFzdGVyIGNvdWxkIHRodXMgZW5qb3kgYXNzaWdubWVudHMgYW5kIHByb3RlY3Rpb24gbm90IG9ubHkgd2l0aGluIGhpcyBjaXR5LCBidXQgaW4gc2V2ZXJhbCBwcm92aW5jZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGJlZ2lubmluZyBvZiB0aGUgMjB0aCBjZW50dXJ5IHdhcyBhIHRpbWUgb2YgcHJvZm91bmQgY2hhbmdlIGZvciB0aGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIG5vcnRoZXJuIENoaW5hLiBUaGUgcG9saXRpY2FsIHVwaGVhdmFscyBvZiB0aG9zZSB5ZWFycyDigJMgZnJvbSB0aGUgQm94ZXIgUmViZWxsaW9uIHRvIHRoZSBmYWxsIG9mIHRoZSBRaW5nIER5bmFzdHkgYW5kIHRoZSBXYXJsb3JkIEVyYSDigJMgYnJvdWdodCBuZXcgb3Bwb3J0dW5pdGllcywgYnV0IGFsc28gcmlza3MuIE1hbnkgb2YgdGhlIG9sZCBzdHJ1Y3R1cmVzIHN1cnZpdmVkLCBidXQgdGhlaXIgZnVuY3Rpb25zIGFuZCBwdWJsaWMgcGVyY2VwdGlvbiBjaGFuZ2VkIGRyYW1hdGljYWxseS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBzby1jYWxsZWQg4oCcWWloZXR1YW7igJ0gdXByaXNpbmcgd2FzIGEga2V5IG1vbWVudCBpbiB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIG1hcnRpYWwgYXJ0cywgcmVsaWdpb24sIGFuZCBwb2xpdGljcy4gVGhlIEJveGVyIG1vdmVtZW50IG1peGVkIGxvY2FsIG1hcnRpYWwgYXJ0cyBncm91cHMgd2l0aCBzcGlyaXR1YWxpc3QgcHJhY3RpY2VzIGFuZCBhIHN0cm9uZ2x5IGFudGktZm9yZWlnbiwgYW50aS1DaHJpc3RpYW4gYWdlbmRhLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE1hbnkgbWFydGlhbCBhcnRzIG5ldHdvcmtzIHN5bXBhdGhpemVkIHdpdGggdGhlIEJveGVycywgc29tZSBwcm92aWRpbmcgZmlnaHRlcnMgb3IgbG9naXN0aWNhbCBrbm93bGVkZ2UuIEhvd2V2ZXIsIHRoZSBicnV0YWwgc3VwcHJlc3Npb24gb2YgdGhlIHVwcmlzaW5nIGJ5IHRoZSBjb21iaW5lZCBmb3JjZXMgb2YgdGhlIOKAnEVpZ2h0LU5hdGlvbiBBbGxpYW5jZeKAnSBkZXN0cm95ZWQgbWFueSBvZiB0aGVzZSBzdHJ1Y3R1cmVzLiBJbiB0aGUgeWVhcnMgdGhhdCBmb2xsb3dlZCwgbWFueSBmaWdodGVycyB3ZXJlIHVuZGVyIGluY3JlYXNlZCBzY3J1dGlueSwgYW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gbWFydGlhbCBhcnRzIGFuZCBwb2xpdGljYWwgYWdpdGF0aW9uIGJlY2FtZSBsaWZlLXRocmVhdGVuaW5nIGZvciBzb21lLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIFhpbmhhaSBSZXZvbHV0aW9uIGJyb3VnaHQgYW4gZW5kIHRvIHRoZSBRaW5nIGR5bmFzdHkg4oCTIGJ1dCBub3QgdG8gdGhlIHN0cnVjdHVyZXMgb2YgdmlvbGVuY2UuIE9uIHRoZSBjb250cmFyeTogZHVyaW5nIHRoZSB0cmFuc2l0aW9uIHBlcmlvZCwgbWFueSBmaWdodGVycyB0b29rIGFkdmFudGFnZSBvZiB0aGUgcG93ZXIgdmFjdXVtIHRvIHN0cmVuZ3RoZW4gdGhlaXIgcG9zaXRpb24uIFNvbWUgam9pbmVkIHJldm9sdXRpb25hcnkgbWlsaXRpYXMsIG90aGVycyBvZmZlcmVkIHRoZWlyIHNlcnZpY2VzIHRvIHRoZSBuZXcgcHJvdmluY2lhbCBnb3Zlcm5tZW50cywgYW5kIHN0aWxsIG90aGVycyBzb3VnaHQgcHJvdGVjdGlvbiBmcm9tIHBvd2VyZnVsIGxvY2FsIGxlYWRlcnMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgcG9saXRpY2FsIGZyYWdtZW50YXRpb24gZm9sbG93aW5nIHRoZSBkZWF0aCBvZiBZdWFuIFNoaWthaSBsZWQgdG8gdGhlIHJ1bGUgb2YgcmVnaW9uYWwgbWlsaXRhcnkgbGVhZGVycyAod2FybG9yZHMpLiBUaGVzZSBtZW4gb2Z0ZW4gcnVsZWQgdGhlaXIgdGVycml0b3JpZXMgbGlrZSBwcml2YXRlIHByaW5jZXMg4oCTIGFuZCB0aGV5IGhhZCBhIGdyZWF0IG5lZWQgZm9yIGxveWFsLCBiYXR0bGUtaGFyZGVuZWQgbWVuLiBNYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2ZmZXJlZCBhbiBpZGVhbCByZWNydWl0aW5nIGdyb3VuZCBmb3IgdGhpcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnREdXJpbmcgdGhpcyBwZXJpb2QsIHNvbWUgbWFydGlhbCBhcnRzIG1hc3RlcnMgcm9zZSB0byBiZWNvbWUgbWlsaXRhcnkgaW5zdHJ1Y3RvcnMgb3IgZXZlbiBvZmZpY2Vycy4gVGhvc2Ugd2hvIHdlcmUgc2tpbGxlZCBjb3VsZCBnYWluIGdyZWF0IGluZmx1ZW5jZSDigJMgdGhvc2Ugd2hvIHdlcmUgdW5sdWNreSB3ZXJlIGRyYXduIGludG8gZW5kbGVzcyBza2lybWlzaGVzIGJldHdlZW4gcml2YWwgd2FybG9yZHMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQYXJhbGxlbCB0byB0aGlzIG1pbGl0YXJpemF0aW9uLCBhIGNvdW50ZXJ0cmVuZCBiZWdhbjogdGhlIGluc3RpdHV0aW9uYWxpemF0aW9uIGFuZCBzcG9ydGlmaWNhdGlvbiBvZiBtYXJ0aWFsIGFydHMuIFN0YXJ0aW5nIGluIHRoZSAxOTEwcywgcHVibGljIG1hcnRpYWwgYXJ0cyBzY2hvb2xzIGFuZCBhc3NvY2lhdGlvbnMgZW1lcmdlZCB0aGF0IGZvY3VzZWQgbGVzcyBvbiB0aGUgdXNlIG9mIHZpb2xlbmNlIGFuZCBtb3JlIG9uIHBoeXNpY2FsIGN1bHR1cmUgYW5kIG5hdGlvbmFsIHByaWRlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXJlIHdlcmUgc2V2ZXJhbCByZWFzb25zIGZvciB0aGlzIGRldmVsb3BtZW50OmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBUaGUgbmV3IHJlcHVibGljYW4gZ292ZXJubWVudCB3YW50ZWQgdG8gY2hhbm5lbCBjb21iYXRpdmUgZW5lcmd5IGludG8gY29udHJvbGxlZCBjaGFubmVscy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgRm9yZWlnbiBzcG9ydHMgc3VjaCBhcyBib3hpbmcgYW5kIGp1ZG8gaW5zcGlyZWQgbW9kZXJuIHRyYWluaW5nIG1ldGhvZHMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIE1hcnRpYWwgYXJ0cyB3ZXJlIHByb21vdGVkIGFzIGEgbWVhbnMgb2Yg4oCccGh5c2ljYWwgcmVuZXdhbCBvZiB0aGUgbmF0aW9uLuKAnWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZvciBzb21lIG9sZCBuZXR3b3JrcywgdGhpcyBtZWFudCB0aGUgbG9zcyBvZiB0aGVpciBvcmlnaW5hbCBmdW5jdGlvbuKAlGZvciBvdGhlcnMsIGl0IHdhcyBhbiBvcHBvcnR1bml0eSB0byBjYW1vdWZsYWdlIHRoZWlyIGluZmx1ZW5jZSBhbmQgYmVjb21lIG1vcmUgcHVibGljbHkgYWNjZXB0YWJsZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBuZXR3b3JrcyB0aGF0IHN1cnZpdmVkIHRoZXNlIHVwaGVhdmFscyBoYWQgb25lIHRoaW5nIGluIGNvbW1vbjogYWRhcHRhYmlsaXR5LiBUaGV5IHdlcmUgYWJsZSB0byB0cmFuc2Zvcm0gdGhlbXNlbHZlcyBmcm9tIGFybWVkIGVzY29ydHMgdG8gc3BvcnRzIHRlYWNoZXJzLCBmcm9tIHVuZGVyd29ybGQgZmlndXJlcyB0byDigJxwYXRyaW90c+KAnSBpbiB0aGUgc2VydmljZSBvZiBhIHdhcmxvcmQg4oCTIG9yIHZpY2UgdmVyc2EuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgdGhyZWUgbmFtZXMgRG9uZyBIYWljaHVhbiwgWmhhbmcgWmhhb2RvbmcsIGFuZCBXYW5nIFhpYW5nemhhaSByZXByZXNlbnQgZGlmZmVyZW50IGdlbmVyYXRpb25zIGFuZCByb2xlcyB3aXRoaW4gdGhlIG5vcnRoZXJuIENoaW5lc2UgbWFydGlhbCBhcnRzIHNjZW5lIGJldHdlZW4gdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMuIFRoZXkgZXhlbXBsaWZ5IGhvdyBtYXN0ZXJzIGZyb20gdGhlc2UgbmV0d29ya3Mgb3BlcmF0ZWQsIGZvcmdlZCByZWxhdGlvbnNoaXBzLCBhbmQgZXhlcnRlZCBpbmZsdWVuY2Ugb24gdGhlaXIgdGltZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERvbmcgSGFpY2h1YW4sIHdpZGVseSBrbm93biBhcyB0aGUgZm91bmRlciBvZiBCYWd1YXpoYW5nLCBncmV3IHVwIGluIEhlYmVpIGFuZCBjYW1lIGludG8gY29udGFjdCB3aXRoIHZhcmlvdXMgbG9jYWwgbWFydGlhbCBhcnRzIGF0IGFuIGVhcmx5IGFnZS4gQSByZWN1cnJpbmcgdGhlbWUgaW4gdGhlIHRyYWRpdGlvbnMgaXMgaGlzIHdvcmsgYXMgYSB0YXggY29sbGVjdG9yIG9yIG9mZmljaWFsLCBpbiBzb21lIHNvdXJjZXMgZXhwbGljaXRseSBvbiBiZWhhbGYgb2YgdGhlIGltcGVyaWFsIGNvdXJ0LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgcG9zaXRpb24gYnJvdWdodCBoaW0gaW50byBkaXJlY3QgY29udGFjdCB3aXRoIGxvY2FsIGVsaXRlcywgYnV0IGFsc28gd2l0aCBtaWxpdGFudCB2aWxsYWdlIG1pbGl0aWFzIGFuZCBhcm1lZCBlc2NvcnQgc2VydmljZXMuIEFueW9uZSB3aG8gd2FudGVkIHRvIGNvbGxlY3QgdGF4ZXMgbm90IG9ubHkgaGFkIHRvIGJlIGFibGUgdG8gZmlnaHQsIGJ1dCBhbHNvIGhhZCB0byBuYXZpZ2F0ZSB0aGUgY29tcGxleCB3ZWIgb2Ygb2ZmaWNpYWxzLCB2aWxsYWdlIGVsZGVycywgbWVyY2hhbnRzLCBhbmQgdW5vZmZpY2lhbCBwb3dlciBmaWd1cmVzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERvbmcgYXBwYXJlbnRseSBtYWRlIGNsZXZlciB1c2Ugb2YgdGhlc2UgY29udGFjdHM6IHdoZW4gaGUgbGF0ZXIgY2FtZSB0byBCZWlqaW5nLCBoZSBnYWluZWQgYWNjZXNzIHRvIGhpZ2gtcmFua2luZyBjaXJjbGVzLCBpbmNsdWRpbmcgdGhlIGhvdXNlaG9sZCBvZiBQcmluY2UgU3UuIEhlcmUsIGhpcyByZXB1dGF0aW9uIGFzIGEgZmlnaHRlciB3YXMgY29tYmluZWQgd2l0aCB0aGUgcm9sZSBvZiB0cmFpbmVyIGZvciBlbGl0ZSBzZWN1cml0eSBmb3JjZXMg4oCTIGEgcG9zaXRpb24gdGhhdCBjb3VsZCBvbmx5IGJlIGhlbGQgYnkgc29tZW9uZSB3aG8gZW5qb3llZCB0aGUgdHJ1c3Qgb2YgYm90aCB0aGUgYWRtaW5pc3RyYXRpb24gYW5kIG1pbGl0YXJ5IGNpcmNsZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRaaGFuZyBaaGFvZG9uZyBmcm9tIFRpYW5qaW4sIG1hc3RlciBvZiBYaW5neWlxdWFuIGFuZCBCYWd1YXpoYW5nLCByZXByZXNlbnRzIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gWWFtZW4gd29yayBhbmQgdGhlIHNlbWktcHJpdmF0ZSBlY29ub215IG9mIHZpb2xlbmNlLiBCZXNpZGVzIGhpcyBjYXJlZXIgYXMgYSBtYXJ0aWFsIGFydHMgdGVhY2hlciwgaGUgcmVwb3J0ZWRseSB3b3JrZWQgYXMgYSBraW5kIG9mIGJvdW50eSBodW50ZXIgb24gYmVoYWxmIG9mIHRoZSBZYW1lbi5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGlzIGFjdGl2aXR5IGludm9sdmVkIHRyYWNraW5nIGRvd24gZnVnaXRpdmUgY3JpbWluYWxzLCBjb2xsZWN0aW5nIGRlbGlucXVlbnQgZGVidHMsIGFuZCB0YWtpbmcgb24gZGVsaWNhdGUgYXNzaWdubWVudHMgdGhhdCByZXF1aXJlZCBwaHlzaWNhbCBlbmZvcmNlbWVudC4gSW4gZG9pbmcgc28sIGhlIG1vdmVkIGluIHRoZSBzYW1lIGNpcmNsZXMgYXMgZXNjb3J0IGxlYWRlcnMsIGhhcmJvciBndWFyZHMsIGFuZCB1bmRlcndvcmxkIGNvbnRhY3RzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEF0IHRoYXQgdGltZSwgVGlhbmppbiB3YXMgYSBodWIgZm9yIHRyYWRlLCBmb3JlaWduIGNvbmNlc3Npb25zLCBhbmQgc211Z2dsaW5nIHJvdXRlc+KAlGlkZWFsIGNvbmRpdGlvbnMgZm9yIHNvbWVvbmUgbGlrZSBaaGFuZywgd2hvIGNvbWJpbmVkIG1hcnRpYWwgYXJ0cyBhbmQgbmV0d29ya2luZy4gSGlzIHNjaG9vbCB3YXMgbm90IG9ubHkgYSB0cmFpbmluZyBncm91bmQgYnV0IGFsc28gYSBtZWV0aW5nIHBsYWNlIGZvciBidXNpbmVzc3Blb3BsZSwgb2ZmaWNpYWxzLCBhbmQgZmlnaHRlcnMuIEluIHRoaXMgd2F5LCBoZSBlc3RhYmxpc2hlZCBoaW1zZWxmIHBlcm1hbmVudGx5IGluIHRoZSBjaXR5J3MgcG93ZXIgbGFuZHNjYXBlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50V2FuZyBYaWFuZ3poYWksIGxhdGVyIGZvdW5kZXIgb2YgWWlxdWFuLCBiZWxvbmdlZCB0byB0aGUgZ2VuZXJhdGlvbiB0aGF0IGV4cGVyaWVuY2VkIHRoZSB0cmFuc2l0aW9uIGZyb20gdGhlIGxhdGUgaW1wZXJpYWwgZWNvbm9teSBvZiB2aW9sZW5jZSB0byB0aGUgcmVwdWJsaWNhbiBtYXJ0aWFsIGFydHMgY3VsdHVyZS4gSGUgZ3JldyB1cCBpbiBIZWJlaSwgdHJhdmVsZWQgYWNyb3NzIENoaW5hIGFzIGEgeW91bmcgbWFuLCBhbmQgc291Z2h0IG91dCBleGNoYW5nZXMgd2l0aCB3ZWxsLWtub3duIG1hc3RlcnMsIGluY2x1ZGluZyB2ZXRlcmFucyBmcm9tIHRoZSBlc2NvcnQgYW5kIHlhbWVuIHNjZW5lLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXNlIHRyYXZlbHMgbWFkZSBoaW0gZmFtaWxpYXIgd2l0aCB0aGUgcmVtbmFudHMgb2YgdGhlIG9sZCBuZXR3b3JrcyBhcyB3ZWxsIGFzIHdpdGggdGhlIG5ldyBzdHJ1Y3R1cmVzIG9mIHRoZSByZXB1YmxpY2FuIGVyYSwgaW4gd2hpY2ggbWFydGlhbCBhcnRzIHdlcmUgaW5jcmVhc2luZ2x5IGVtYmVkZGVkIGluIG1pbGl0YXJ5IHRyYWluaW5nIGFuZCBwdWJsaWMgc3BvcnRzIGNsdWJzLiBIaXMgYWJpbGl0eSB0byB0cmFuc2xhdGUgdHJhZGl0aW9uYWwgdGVjaG5pcXVlcyBpbnRvIGEgbW9kZXJuIGNvbmNlcHQgc2hvd3MgaG93IHRoZSBzb2NpYWwgY2FwaXRhbCBvZiB0aGUgb2xkIG5ldHdvcmtzIGNvdWxkIGJlIHNhdmVkIGludG8gdGhlIG5ldyBlcmEuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uWGluaGFpIFJldm9sdXRpb24gKFdpa2lwZWRpYSlpZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2Ygbm9ydGhlcm4gQ2hpbmEgaW4gdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMgd2VyZSBtb3JlIHRoYW4gbWVyZSBhc3NvY2lhdGlvbnMgb2YgZmlnaHRlcnMuIFRoZXkgd2VyZSBzb2NpYWwgaW5zdGl0dXRpb25zIHRoYXQgb3BlcmF0ZWQgaW4gYSBibHVycmVkIHNwYWNlIGJldHdlZW4gb2ZmaWNpYWwgYWRtaW5pc3RyYXRpb24sIGxvY2FsIHNlbGYtb3JnYW5pemF0aW9uLCBhbmQgY3JpbWluYWwgc3RydWN0dXJlcy4gVGhlaXIgbWVtYmVycyBtb3ZlZCBuYXR1cmFsbHkgYmV0d2VlbiB0aGVzZSBzcGhlcmVzIGFuZCB1c2VkIG1hcnRpYWwgYXJ0cyBhcyBib3RoIHBoeXNpY2FsIGFuZCBzeW1ib2xpYyBjYXBpdGFsLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50V2hldGhlciBhcyB5YW1lbiBydW5uZXJzLCBlc2NvcnQgbGVhZGVycywgbWlsaXRpYW1lbiwgb3IgdGVhY2hlcnMsIHRoZSBtZW4gKGFuZCwgaW4gcmFyZXIgY2FzZXMsIHdvbWVuKSBpbiB0aGVzZSBuZXR3b3JrcyBrbmV3IGhvdyB0byBhcHBseSB0aGVpciBza2lsbHMgaW4gZGlmZmVyZW50IGNvbnRleHRzLiBUaGV5IGNvdWxkIHdvcmsgZm9yIGEgbWFnaXN0cmF0ZSBvbmUgeWVhciwgYSB3YXJsb3JkIHRoZSBuZXh0LCBhbmQgc2hvcnRseSB0aGVyZWFmdGVyIGFzIGluc3RydWN0b3JzIGF0IGEgc3BvcnRzIHNjaG9vbC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGlzIGZsZXhpYmlsaXR5IHdhcyBjcnVjaWFsIHRvIHRoZWlyIHN1cnZpdmFsIGF0IGEgdGltZSB3aGVuIHBvbGl0aWNhbCBvcmRlcnMgY2hhbmdlZCByYXBpZGx5IGFuZCBzdGF0ZSBzdHJ1Y3R1cmVzIGRpZCBub3QgZnVuY3Rpb24gYWNyb3NzIHRoZSBib2FyZC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEEga2V5IGVsZW1lbnQgb2YgdGhlaXIgc3VjY2VzcyBsYXkgaW4gdGhlaXIgYWJpbGl0eSB0byBleGVyY2lzZSBwb3dlciB3aXRob3V0IHByb3Zva2luZyBjb21wbGV0ZSByZWplY3Rpb24gYnkgdGhlIHBvcHVsYXRpb24gb3IgdGhlIHN0YXRlLiBNYW55IG9mZmVyZWQgZ2VudWluZSBwcm90ZWN0aW9uLCBtZWRpYXRlZCBjb25mbGljdHMsIG9yIGd1YXJhbnRlZWQgc2FmZSB0cmFkZSByb3V0ZXPigJRzZXJ2aWNlcyB0aGF0IHdlcmUgbm90IGFsd2F5cyBwcm92aWRlZCBieSBvZmZpY2lhbCBhdXRob3JpdGllcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBdCB0aGUgc2FtZSB0aW1lLCB0aGUgbGluZSBiZXR3ZWVuIGV4dG9ydGlvbiwgc211Z2dsaW5nLCBhbmQgcG9saXRpY2FsbHkgbW90aXZhdGVkIHZpb2xlbmNlIHdhcyBvZnRlbiBibHVycmVkLiBUaGVzZSBncmF5IGFyZWFzIG1hZGUgdGhlIG5ldHdvcmtzIGFuIGluZGlzcGVuc2FibGUgYnV0IGFsc28gYW1iaXZhbGVudCBwYXJ0IG9mIHRoZSBzb2NpYWwgZmFicmljLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50V2l0aCB0aGUgY29uc29saWRhdGlvbiBvZiB0aGUgUmVwdWJsaWMgb2YgQ2hpbmEgYW5kIGxhdGVyIHRoZSBQZW9wbGUncyBSZXB1YmxpYywgdGhlIG9sZCBzdHJ1Y3R1cmVzIHdlcmUgbGFyZ2VseSBkaXNzb2x2ZWQgb3IgdHJhbnNmZXJyZWQgdG8gc3RhdGUtY29udHJvbGxlZCBmb3Jtcy4gTWFydGlhbCBhcnRzIHdlcmUgaW5jcmVhc2luZ2x5IHByb21vdGVkIGFzIGEgc3BvcnQsIGhlYWx0aCBwcm9tb3Rpb24sIGFuZCBjdWx0dXJhbCBoZXJpdGFnZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRIb3dldmVyLCB0cmFjZXMgb2YgdGhlIG9sZCBuZXR3b3JrcyBhcmUgc3RpbGwgdmlzaWJsZTpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgSW4gdGhlIG1hc3Rlci1zdHVkZW50IHJlbGF0aW9uc2hpcHMsIHdoaWNoIGFyZSBvZnRlbiBjdWx0aXZhdGVkIGxpa2UgZmFtaWx5IG9ibGlnYXRpb25zZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIEluIHRoZSBpbnRlcnR3aW5pbmcgb2YgbWFydGlhbCBhcnRzLCBzZWN1cml0eSBzZXJ2aWNlcywgYW5kIGxvY2FsIGJ1c2luZXNzIGludGVyZXN0c2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBJbiB0aGUgbmFycmF0aXZlIHRyYWRpdGlvbiB0aGF0IGNhc3RzIG1hc3RlcnMgc3VjaCBhcyBEb25nIEhhaWNodWFuLCBaaGFuZyBaaGFvZG9uZywgYW5kIFdhbmcgWGlhbmd6aGFpIGluIGEgc2VtaS1sZWdlbmRhcnkgbGlnaHRkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwZm9udFNpemVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEV2ZW4gdGhvdWdoIHRoZSBwb2xpdGljYWwgY29uZGl0aW9ucyBhcmUgY29tcGxldGVseSBkaWZmZXJlbnQgdG9kYXksIGNlcnRhaW4gcGFyYWxsZWxzIGNhbiBiZSBzZWVuIGluIG1vZGVybiBzZWN1cml0eSBjb21wYW5pZXMsIHNlbWktb2ZmaWNpYWwgbG9jYWwgb3JnYW5pemF0aW9ucywgYW5kIHRoZSBwcml2YXRlIG1pbGl0YXJ5IGFuZCBzZWN1cml0eSBpbmR1c3RyeTpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgUmVjcnVpdG1lbnQgdGhyb3VnaCBwZXJzb25hbCBjb250YWN0c2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBUaGUgY29tYmluYXRpb24gb2YgcGh5c2ljYWwgYWJpbGl0aWVzIHdpdGggbG9jYWwgaW5mb3JtYXRpb24gbmV0d29ya3Nkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgVGhlIGFiaWxpdHkgdG8gb3BlcmF0ZSBpbiBib3RoIGZvcm1hbCBhbmQgaW5mb3JtYWwgcG93ZXIgc3RydWN0dXJlc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSBhdCB0aGF0IHRpbWUgYXJlIGFuIGV4YW1wbGUgb2YgaG93IHBoeXNpY2FsIGFiaWxpdGllcywgc29jaWFsIHRpZXMsIGFuZCBlY29ub21pYyBpbnRlcmVzdHMgY2FuIGJlIGludGVyZGVwZW5kZW50LiBUaGV5IHNob3cgdGhhdCBtYXJ0aWFsIGFydHMgaW4gQ2hpbmEgd2VyZSBub3QganVzdCBhIG1hdHRlciBvZiB0cmFpbmluZyBvciBwaGlsb3NvcGh5LCBidXQgYSBjZW50cmFsIHNvY2lhbCByZXNvdXJjZSB0aGF0IGNvdWxkIHNoYXBlIGxpdmVzLCBwb3dlciwgYW5kIGluZmx1ZW5jZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGVpciBoaXN0b3J5IGlzIHRodXMgbm90IG9ubHkgYSBjaGFwdGVyIGluIHRoZSBkZXZlbG9wbWVudCBvZiBDaGluZXNlIG1hcnRpYWwgYXJ0cywgYnV0IGFsc28gYSByZWZsZWN0aW9uIG9mIHRoZSBwb2xpdGljYWwgYW5kIHNvY2lhbCB1cGhlYXZhbHMgdGhhdCBzaGFwZWQgdGhlIGNvdW50cnkgZnJvbSB0aGUgZW5kIG9mIHRoZSBpbXBlcmlhbCBlcmEgdG8gdGhlIG1vZGVybiBkYXkuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlByaW1hcnkgc291cmNlcyAvIENvbnRlbXBvcmFyeSByZXBvcnRzPC9zdHJvbmc+ZHJvcENhcGZvbnRTaXplaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgQmVpamluZyBHYXpldHRlICh2YXJpb3VzIGVkaXRpb25zLCAxODYw4oCTMTkxMCkg4oCTIE9mZmljaWFsIGNvdXJ0IGJ1bGxldGlucyBtZW50aW9uaW5nIGFkbWluaXN0cmF0aXZlIG9mZmljaWFscyBhbmQgc2VjdXJpdHkgcGVyc29ubmVsIGluIG5vcnRoZXJuIENoaW5hLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBZb3VuZ2h1c2JhbmQsIEYuIEUuIENoaW5hIGFuZCB0aGUgRmFyIEVhc3QgKDE4OTkpIOKAkyBUcmF2ZWxvZ3VlIHdpdGggZGVzY3JpcHRpb25zIG9mIGFybWVkIGVzY29ydHMgYW5kIG1hcnRpYWwgYXJ0cyBkZW1vbnN0cmF0aW9ucy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgUGFya2VyLCBFLiBILiBDaGluZXNlIFNlY3JldCBTb2NpZXRpZXMgKDE5MDApIOKAkyBFYXJseSBXZXN0ZXJuIGFjY291bnQgb2YgQ2hpbmVzZSBzZWNyZXQgc29jaWV0aWVzIGFuZCB0aGVpciBsb2NhbCBpbmZsdWVuY2UuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIFJlcG9ydHMgZnJvbSB0aGUgTm9ydGggQ2hpbmEgSGVyYWxkIChTaGFuZ2hhaSksIDE4NzXigJMxOTE1IOKAkyBOZXdzcGFwZXIgYXJ0aWNsZXMgb24gY3JpbWUsIHBvbGljZSwgYW5kIG1hcnRpYWwgYXJ0cyBkZW1vbnN0cmF0aW9ucy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlNlY29uZGFyeSBzb3VyY2VzIC8gcmVzZWFyY2ggbGl0ZXJhdHVyZTwvc3Ryb25nPmRyb3BDYXBmb250U2l6ZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIEVzaGVyaWNrLCBKb3NlcGggVy4gVGhlIE9yaWdpbnMgb2YgdGhlIEJveGVyIFVwcmlzaW5nLiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MsIDE5ODcg4oCTIEFib3V0IG1pbGl0aWFzLCBtYXJ0aWFsIGFydHMgZ3JvdXBzLCBhbmQgc2VjcmV0IHNvY2lldGllcyBpbiBub3J0aGVybiBDaGluYSBkdXJpbmcgdGhlIGxhdGUgUWluZyBwZXJpb2QuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIE93bmJ5LCBEYXZpZC4gQnJvdGhlcmhvb2RzIGFuZCBTZWNyZXQgU29jaWV0aWVzIGluIEVhcmx5IGFuZCBNaWQtUWluZyBDaGluYS4gU3RhbmZvcmQgVW5pdmVyc2l0eSBQcmVzcywgMTk5NiDigJMgQW5hbHlzaXMgb2YgdGhlIHJvbGUgb2Ygc3dvcm4gYnJvdGhlcmhvb2RzIGFuZCB0aGVpciBzb2NpYWwgcmVhY2guZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW504oCiIEtlbm5lZHksIEJyaWFuICZhbXA7IEd1bywgRWxpemFiZXRoLiBDaGluZXNlIE1hcnRpYWwgQXJ0cyBUcmFpbmluZyBNYW51YWxzOiBBIEhpc3RvcmljYWwgU3VydmV5LiBOb3J0aCBBdGxhbnRpYyBCb29rcywgMjAwNSDigJMgRG9jdW1lbnRhdGlvbiBvbiBtYXJ0aWFsIGFydHMgcHJhY3RpY2UgaW4gdGhlIGxhdGUgUWluZyBhbmQgZWFybHkgUmVwdWJsaWNhbiBwZXJpb2RzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBNb3JyaXMsIEFuZHJldyBELiBNYXJyb3cgb2YgdGhlIE5hdGlvbjogQSBIaXN0b3J5IG9mIFNwb3J0IGFuZCBQaHlzaWNhbCBDdWx0dXJlIGluIFJlcHVibGljYW4gQ2hpbmEuIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBQcmVzcywgMjAwNCDigJMgQ29udGV4dCBvbiBtYXJ0aWFsIGFydHMgYW5kIHBoeXNpY2FsIGN1bHR1cmUgaW4gdGhlIGVhcmx5IDIwdGggY2VudHVyeS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgTG9yZ2UsIFBldGVyIEEuIENoaW5lc2UgTWFydGlhbCBBcnRzOiBGcm9tIEFudGlxdWl0eSB0byB0aGUgVHdlbnR5LUZpcnN0IENlbnR1cnkuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAyMDEyIOKAkyBDb21wcmVoZW5zaXZlIG92ZXJ2aWV3IHdpdGggaGlzdG9yaWNhbCBkZXB0aC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnTigKIgSGVubmluZywgU3RhbmxleSBFLiDigJxDaGluZXNlIE1hcnRpYWwgQXJ0cyBpbiB0aGUgTGF0ZSBNaW5nIGFuZCBRaW5nIER5bmFzdGllcy7igJ0gSm91cm5hbCBvZiBBc2lhbiBNYXJ0aWFsIEFydHMgNiwgTm8uIDMgKDE5OTcpOiAzMOKAkzYyLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAoiBXYWtlbWFuLCBGcmVkZXJpYy4gUG9saWNpbmcgU2hhbmdoYWksIDE5MjfigJMxOTM3LiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MsIDE5OTUg4oCTIE9uIHRoZSBvdmVybGFwIGJldHdlZW4gbWFydGlhbCBhcnRzLCBzZWN1cml0eSBmb3JjZXMsIGFuZCBvcmdhbml6ZWQgY3JpbWUuZHJvcENhcGlubmVyQmxvY2tzc3RhdGVzYXZlZEF0c3RhdGVzYXZlZEJ5BQcIBAgECAYIBScIB5mwBQgHCAYIDggOCAtIAQQJCAYIBw8ECgcGCwgHDwQKB5cHBwsIBw8ECkMABwIIDwULCAcPBApHAAgLCAcPBAoHlgcHCwgHDwQKB5wHBwsIBw8ECgeCBgcLCAcPBApHAAgLCAcPBAoHhQYHCwgHDwQKB5EFBwsIBw8ECkcACAsIBw8ECgevBgcLCAcPBAoHsgQHCwgHDwQKRwAICwgHDwQKB58GBwsIBw8ECgenBAcLCAcPBApHAAgLCAcPBAoHnwQHCwgHDwQKRwAICwgHDwQKB6sFBwsIBw8ECgcGCwgHDwQKQwAHAggPCwgHDwQKB7MEBwsIBw8ECkcACAsIBw8ECgeABAcLCAcPBAoHhwYHCwgHDwQKRwAICwgHDwQKBzsHCwgHDwQKB50CBwsIBw8ECgekAgcLCAcPBAoHlgMHCwgHDwQKRwAICwgHDwQKB4EFBwsIBw8ECgeKBAcLCAcPBApHAAgLCAcPBAoHlAUHCwgHDwQKRwAICwgHDwQKB7UFBwsIBw8ECkcACAsIBw8ECgcGCwgHDwQKB44GBwsIBw8ECkMABxECCA8LCAcPBAoHvwMHCwgHDwQKRwAICwgHDwQKB4gFBwsIBw8ECge4AwcLCAcPBApHAAgLCAcPBAoHrwQHCwgHDwQKB5AEBwsIBw8ECkcACAsIBw8ECgeLBQcLCAcPBAoHpgMHCwgHDwQKRwAICwgHDwQKB64EBwsIBw8ECkcACAsIBw8ECgeZBgcLCAcPBApHAAgLCAcPBAoHmQMHCwgHDwQKRwAICwgHDwQKB5gEBwsIBw8ECkcACAsIBw8ECgetBwcLCAcPBApHAAgLCAcPBAoHggQHCwgHDwQKB7cCBwsIBw8ECkcACAsIBw8ECgehBQcLCAcPBAoHogMHCwgHDwQKQwAHjwQCCA8LCAcPBApHAAgLCAcPBAoHrwUHCwgHDwQKB6cDBwsIBw8ECkcACAsIBw8ECgeMBgcLCAcPBAoHoAIHCwgHDwQKRwAICwgHDwQKB6wGBwsIBw8ECkcACAsIBw8ECgeQBAcLCAcPBApHAAgLCAcPBAoHPwcLCAcPBAoHlAMHCwgHDwQKB74DBwsIBw8ECgezAwcLCAcPBAoHrAYHCwgHDwQKB6wDBwsIBw8ECkcACAsIBw8ECge4BQcLCAcPBAoHoAIHCwgHDwQKB4MGBwsIBw8ECgcoBwsIBw8ECgeJAwcLCAcPBAoHJQcLCAcPBAoHJQcLCAcPBAoHjQEHCwgHDwQKB44EBwsIBw8ECge1AwcLCAcPBApHAAgLCAcPBAoHmAEHCwgHDwQKB4gBBwsIBw8ECgehAQcLCAcPBAoHvgEHCwgHDwQKBwYLCAcPBAoHigIHCwgHDwQKRwAICwgHDwQKBwYLCAcPBAoHlAcHCwgHDwQKQwAHAggPCwgHDwQKRwAICwgHDwQKB5ABBwsIBw8ECgeDAQcLCAcPBAoHsgEHCwgHDwQKB7UBBwsIBw8ECge4BQcLCAcPBApHAAgLCAcPBAoHtQMHCwgHDwQKB50GBwsIBw8ECkcACAsIBw8ECgeEBgcLCAcPBApHAAgLCAcPBAoHswQHCwgHDwQKB6kDBwsIBw8ECkcACAsIBw8ECgeZBAcLCAcPBAoHMAcLCAcPBAoHnAEHCwgHDwQKB4oBBwsIBw8ECgeMAQcLCAcPBAoHqgIHCwgHDwQKRwAICwgHDwQKB7IDBwsIBw8ECkcACAsIBw8ECge+BAcLCAcPBApHAAgLCAcPBAoHnQQHCwgHDwQKB7gEBwsIBw8ECge6BQcLCAcPBApHAAgLCAcPBAoHjgQHCwgHDwQKB4EEBwsIBw8ECgemBQcLCAcPBApHAAgLCAcPBAoHlwUHCwgHDwQKB7YFBwsIBw8ECkMABx0CCA8LCAcPBApHAAgLCAcPBAoHhgYHCwgHDwQKRwAICwgHDwQKB6gEBwsIBw8ECgeWAgcLCAcPBApHAAgLCAcPBAoHnwQHCwgHDwQKB5EDBwsIBw8ECkcACAsIBw8ECgeBBAcLCAcPBAoHNgcLCAcPBAoHmQEHCwgHDwQKB5YBBwsIBw8ECgeDAgcLCAcPBApHAAgLCAcPBAoHkwMHCwgHDwQKBycHCwgHDwQKB4cBBwsIBw8ECgeFAQcLCAcPBApHAAgLCAcPBAoHgAUHCwgHDwQKB5wDBwsIBw8ECkcACAsIBw8ECgc3BwgLCAcPBAoHmAIHCwgHDwQKB4QCBwsIBw8ECge+AQcLCAcPBAoHgwIHCwgHDwQKBzgHCAsIBw8ECgeIAwcLCAcPBAoHswIHCwgHDwQKB5UDBwsIBw8ECgeVAwcLCAcPBAoHpAIHCwgHDwQKB4cCBwsIBw8ECgekAgcLBQcFBxIBBAAAAQAAAAEGAAABAAD1DAHTBUIBAQBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAANB4gcBuA4AfQF3EzIwMjUtMDgtMDlUMjI6MTM6MTF3cW1hcnRpYWwtYXJ0cy1uZXR3b3Jrcy1pbi1ub3J0aGVybi1jaGluYS1hLWpvdXJuZXktaW50by10aGUtc2hhZG93LXdvcmxkLW9mLXRoZS1sYXRlLTE5dGgtYW5kLWVhcmx5LTIwdGgtY2VudHVyaWVzdwdwdWJsaXNofQF9nBF3BmNsb3NlZHcGY2xvc2VkdwB3AHckM2MxMDhiNDEtMmM2NC00NzcwLWEzNzItMzM5YjMzYTlmZDYzeHciPGRpdiBjbGFzcz0id3AtYmxvY2stZ3JvdXAiPjwvZGl2PncKY29yZS9ncm91cHcDZGl2dgIEdHlwZXcEZmxleAhmbGV4V3JhcHcGbm93cmFwdyQwYTVlOGUyOS02ZmYyLTQzNDItODRlNC0yOTM2NWExMzZmNmR4d+ADPHA+QmV0d2VlbiBnb3Zlcm5tZW50IG9mZmljZXMgYW5kIGJhY2t5YXJkcywgYmV0d2VlbiBpbXBlcmlhbCBjb21taXNzaW9ucyBhbmQgZ2FtYmxpbmcgZGVuczogaW4gdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMsIG5vcnRoZXJuIENoaW5hIHdhcyBjcmlzc2Nyb3NzZWQgYnkgYW4gaW52aXNpYmxlIG5ldHdvcmsgb2YgbWFydGlhbCBhcnRpc3RzLCBvZmZpY2lhbHMsIHNlY3JldCBzb2NpZXRpZXMsIGFuZCB1bmRlcndvcmxkIGZpZ3VyZXMuIFRoZXkgd2VyZSBlc2NvcnQgbGVhZGVycywgeWFtZW4gcnVubmVycywgdGVtcGxlIGd1YXJkc+KAlGFuZCBzb21ldGltZXMgYWxsIG9mIHRoZXNlIGF0IG9uY2UuIFRoaXMgYXJ0aWNsZSBwYWludHMgYSBwb3J0cmFpdCBvZiBhIHBhcmFsbGVsIHdvcmxkIGluIHdoaWNoIGZpc3QgdGVjaG5pcXVlcyB3ZXJlIGp1c3QgYXMgdmFsdWFibGUgYXMgYW4gb2ZmaWNpYWwgc2VhbC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGI3MTQzMDk1LTU1ZDItNDhjYi05YzI5LTY0ZTYxZDYzZTlhNnh3pAE8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBhbGlnbmNlbnRlciBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L2JpYW9qdS5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtMTExNiIvPjwvZmlndXJlPncKY29yZS9pbWFnZXc8aHR0cHM6Ly9iYWd1YS16aGFuZy5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wOC9iaWFvanUuanBndwB9nBF3BGZ1bGx3BG5vbmV3BmNlbnRlcnckNmJhYTU0Y2EtMDY5MS00YmUzLWJlZWEtMWM3ZjlkYzNkZGM2eHcjPHAgY2xhc3M9Imhhcy1sYXJnZS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcFbGFyZ2V3JDA3NjcwNTZmLWNiNGItNDAxNy05MGRkLWZmYTAzYTM2YzdkNXh33wM8cD5Ob3J0aGVybiBDaGluYSBpbiB0aGUgZmluYWwgZGVjYWRlcyBvZiB0aGUgUWluZyBEeW5hc3R5IHdhcyBhIGNvdW50cnkgaW4gdHVybW9pbC4gSXQgd2FzIGEgdGltZSB3aGVuIGltcGVyaWFsIGF1dGhvcml0eSB3YXMgZmFsdGVyaW5nLCBmYW1pbmVzIGFuZCB1cHJpc2luZ3Mgd2VyZSBzaGFraW5nIHRoZSBjb3VudHJ5LCBhbmQgZm9yZWlnbiBwb3dlcnMgd2VyZSBleHBhbmRpbmcgdGhlaXIgc3BoZXJlcyBvZiBpbmZsdWVuY2UgaW4gdGhlIHBvcnQgY2l0aWVzLiBJbiB0aGlzIGVudmlyb25tZW50LCBtYXJ0aWFsIGFydHMgd2VyZSBub3QgYW4gZWxlZ2FudCBwYXN0aW1lIGZvciB3ZWFsdGh5IGNpdHkgZHdlbGxlcnMsIGJ1dCBhIHRvb2wgZm9yIHN1cnZpdmFsIOKAkyBhbmQgZm9yIG1hbnksIGEgdGlja2V0IHRvIGEgZGFuZ2Vyb3VzIGJ1dCBsdWNyYXRpdmUgbmV0d29yayBvZiBwb3dlciwgbW9uZXksIGFuZCBpbmZsdWVuY2UuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ5NDY2ODQ0MC00NGVmLTQ5NzUtODA5Mi0yMDI1MWJjNTJmY2Z4d+MDPHA+QmFjayB0aGVuLCBwZW9wbGUgZGlkbid0IHRyYWluIGluIGd5bXMgb3IgY2x1YnMuIE1hcnRpYWwgYXJ0cyB0b29rIHBsYWNlIGluIGJhY2t5YXJkcywgdGVtcGxlIGNvbXBsZXhlcywgZHVzdHkgbWFya2V0cGxhY2VzLCBhbmQgaW1wcm92aXNlZCB0cmFpbmluZyBncm91bmRzIG9uIHRoZSBvdXRza2lydHMgb2YgdGhlIGNpdHkuIFRob3NlIHdobyBtYXN0ZXJlZCBhIHJlY29nbml6ZWQgdGVjaG5pcXVlIGNvdWxkIGhpcmUgdGhlbXNlbHZlcyBvdXQgYXMgZXNjb3J0IGd1YXJkcywgZW50ZXIgdGhlIHNlcnZpY2Ugb2YgdGhlIGxvY2FsIGFkbWluaXN0cmF0aW9uLCBvciB3b3JrIGFzIGVuZm9yY2VycyBpbiB0aGUgcG9ydCBkaXN0cmljdHMuIFRoZSBib3VuZGFyaWVzIGJldHdlZW4gbGVnYWwgYXV0aG9yaXR5IGFuZCB0aGUgdW5kZXJ3b3JsZCB3ZXJlIGFzIGZsdWlkIGFzIHRoZSBZZWxsb3cgUml2ZXIgaW4gdGhlIHJhaW55IHNlYXNvbi48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDEwMmRmOGMzLWZkNmQtNDYyZS05NGVmLWI1NmNhNWJhMGRkOHh3iwM8cD5UaGVyZSB3ZXJlIHBlb3BsZSB3aG8gY2FycmllZCBvdXQgYXJyZXN0cyBvbiBiZWhhbGYgb2YgdGhlIG1hZ2lzdHJhdGUgaW4gdGhlIG1vcm5pbmcgYW5kIHVzZWQgdGhlIHNhbWUgZmlzdHMgZm9yIGEgc211Z2dsZXIgb3IgZ2FtYmxpbmcgYm9zcyBpbiB0aGUgZXZlbmluZy4gVGhlc2UgZHVhbCByb2xlcyB3ZXJlIG5vdCB0aGUgZXhjZXB0aW9uLCBidXQgdGhlIG5vcm0uIEluIGEgcmVnaW9uIHdoZXJlIHRoZSBzdGF0ZSB3YXMgd2VhayBhbmQgZGlzdGFuY2VzIHdlcmUgbG9uZywgbWFydGlhbCBhcnRzIG5ldHdvcmtzIGZpbGxlZCB0aGUgZ2FwcyBpbiB0aGUgc2VjdXJpdHkgYW5kIGFkbWluaXN0cmF0aXZlIHN5c3RlbSDigJMgb2Z0ZW4gaW4gdGhlaXIgb3duIHVuaXF1ZSB3YXkuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4OTZkNzhiNC1hMjZmLTRhNTQtYjlkNC0wNWNjZTYxMTA2ZDV4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQzYWExYzFmMS1kZjVjLTQyMTYtYWYyNi03N2JiM2M0M2I0ZWZ4d4wDPHA+VGhlIG5vcnRoZXJuIHByb3ZpbmNlcyBzdWNoIGFzIFpoaWxpICh0b2RheSdzIEhlYmVpIHdpdGggQmVpamluZyBhbmQgVGlhbmppbikgYW5kIFNoYW5kb25nIHdlcmUgcGFydGljdWxhcmx5IHByZWRlc3RpbmVkIGZvciBzdWNoIHN0cnVjdHVyZXMuIFRoaXMgaXMgd2hlcmUgbWFqb3IgdHJhZGUgYW5kIHRyYW5zcG9ydCByb3V0ZXMgY3Jvc3NlZDogdGhlIEdyYW5kIENhbmFsLCB0aGUgY29hc3RhbCByb3V0ZXMsIGFuZCB0aGUgcm9hZHMgY29ubmVjdGluZyB0aGUgY2FwaXRhbCB3aXRoIHRoZSBwb3J0cy4gTWFya2V0cywgY2FyYXZhbiBzdGF0aW9ucywgd2FyZWhvdXNlcywgYW5kIG1lZXRpbmcgcGxhY2VzIGZvciBhcm1lZCBtZW4gc3ByYW5nIHVwIGF0IHRoZXNlIGp1bmN0aW9ucy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDBjZDlmZTYwLWVhYWQtNGNmMS05Yzk1LTQxYTczNmM5NzE5Nnh32AI8cD5UZW1wbGUgY291cnR5YXJkcyBiZWNhbWUgcGxhY2VzIG5vdCBvbmx5IGZvciBwcmF5ZXIgYnV0IGFsc28gZm9yIHRyYWluaW5nLiBSb2Fkc2lkZSBpbm5zIG9mZmVyZWQgbm90IG9ubHkgc291cCBhbmQgYSBiZWQgYnV0IGFsc28gZGlzY3JlZXQgYmFjayByb29tcyB3aGVyZSBvcmRlcnMgd2VyZSBnaXZlbi4gTGFyZ2UgZmVzdGl2YWxzIHByb3ZpZGVkIGNvdmVyIGZvciBzZWNyZXQgYWdyZWVtZW50cywgYW5kIG1hc3Rlci1kaXNjaXBsZSByZWxhdGlvbnNoaXBzIHN0cmV0Y2hlZCBpbnZpc2libGUgdGhyZWFkcyBiZXR3ZWVuIHZpbGxhZ2VzLCB0b3ducywgYW5kIGVudGlyZSBwcm92aW5jZXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwMDNmOTYxMC1kNDllLTQwMTEtODZiZi1lZDA1OTk0YzI0YzN4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQ5YTA1MWJkZS1jNThhLTRkMDEtYWM5Ny00YmIxOGZlMTU0MmN4d7gDPHA+VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiB0aGF0IHRpbWUgd2VyZSBjb21wbGV4IHN0cnVjdHVyZXMuIFRoZXkgY29ubmVjdGVkIG1lcmNoYW50IGd1aWxkcywgcmVsaWdpb3VzIGJyb3RoZXJob29kcywgbG9jYWwgbWlsaXRpYXMsIGFuZCBhZG1pbmlzdHJhdGl2ZSBvZmZpY2lhbHMuIEEgbWFzdGVyIGNvdWxkIGJlIGEgdmlsbGFnZSBlbGRlciwgYSB5YW1lbiBlbXBsb3llZSAob2ZmaWNpYWwpLCBhbmQgYSBtZW1iZXIgb2YgYSBzZWNyZXQgc29jaWV0eSBhbGwgYXQgdGhlIHNhbWUgdGltZS4gSGlzIHN0dWRlbnRzLCBpbiB0dXJuLCBicm91Z2h0IGNvbnRhY3RzIGZyb20gdmFyaW91cyBzb2NpYWwgc3RyYXRhOiBmYXJtZXJzLCBzb2xkaWVycywgc211Z2dsZXJzLCBvZmZpY2lhbHPigJRhbGwgZm91bmQgdGhlaXIgcGxhY2UgaW4gdGhpcyBuZXR3b3JrLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNmY2YjZhYTYtYzNiOS00Y2E2LTg3NGYtMjQ2M2U5MWY4MjNkeHe7AjxwPlRoZXNlIG5ldHdvcmtzIHdlcmUgbm90IG9ubHkgc29jaWFsIGNvbW11bml0aWVzLCBidXQgYWxzbyBlY29ub21pYyBtYWNoaW5lcy4gVGhleSB0aHJpdmVkIG9uIGVzY29ydCBzZXJ2aWNlcywgbWFya2V0IHByb3RlY3Rpb24sIGRlYnQgY29sbGVjdGlvbiwgYW5kIG9jY2FzaW9uYWxseSBzbXVnZ2xpbmcuIEZvciBtYW55LCBtYXJ0aWFsIGFydHMgd2VyZSBub3QganVzdCBhIHRyYWRpdGlvbiwgYnV0IGEgYnVzaW5lc3MgbW9kZWwg4oCTIGEgdG9vbCB0byBndWFyYW50ZWUgc2VjdXJpdHkgYW5kIGluY29tZSBpbiB1bmNlcnRhaW4gdGltZXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ5ZGZlZWZjYi03ZDUwLTRkNDEtYWJhMy0zMWZmMmU0Njk0NmN4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQ1OWIyNDdjNy01ZWVlLTRmMzAtOWRkMC1mYjhhZGJmZGFkNzh4d6gDPHA+VGhlIGhpc3Rvcnkgb2YgdGhlc2UgbmV0d29ya3MgaXMgbXVjaCBtb3JlIHRoYW4ganVzdCBhIGZvb3Rub3RlIGluIENoaW5lc2UgbWFydGlhbCBhcnRzLiBJdCBleHBsYWlucyB3aHkgY2VydGFpbiBzdHlsZXMgZW1lcmdlZCBpbiBub3J0aGVybiBDaGluYSwgaG93IHRoZXkgc3ByZWFkLCBhbmQgd2h5IHNvbWUgbWFzdGVycyBiZWNhbWUgbGVnZW5kcyB3aGlsZSBvdGhlcnMgcmVtYWluZWQgaW4gdGhlIHNoYWRvd3MuIEl0IGFsc28gc2hvd3MgaG93IGNsb3NlbHkgdmlvbGVuY2UsIGFkbWluaXN0cmF0aW9uLCBhbmQgdGhlIHVuZGVyd29ybGQgd2VyZSBpbnRlcnR3aW5lZCDigJMgYW5kIGhvdyBtdWNoIG1hcnRpYWwgYXJ0cyB3ZXJlIHBhcnQgb2YgdGhlIHNvY2lhbCBhbmQgcG9saXRpY2FsIHBvd2VyIGdhbWUgYXQgdGhlIHRpbWUuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyOGE2ZTBlOS01MzEzLTQ5MTctODEyNS04MzNiM2E0ZjRhYzJ4d64CPHA+SW4gdGhlIGZvbGxvd2luZyBjaGFwdGVycywgd2UgdGFrZSBhIGxvb2sgYmVoaW5kIHRoZSBzY2VuZXMgb2YgdGhpcyB3b3JsZDogYXQgdGhlIHBvbGl0aWNhbCBmcmFtZXdvcmssIHRoZSBjb21wb3NpdGlvbiBvZiB0aGUgbmV0d29ya3MsIGhvdyB0aGV5IGZ1bmN0aW9uZWQsIHRoZWlyIGNvbm5lY3Rpb25zIHRvIHNlY3JldCBzb2NpZXRpZXMsIGFuZCBzb21lIG9mIHRoZSBtb3N0IGZhbW91cyBwcm90YWdvbmlzdHMgc3VjaCBhcyBEb25nIEhhaWNodWFuLCBaaGFuZyBaaGFvZG9uZywgYW5kIFdhbmcgWGlhbmd6aGFpLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNGFjODcxNDktYTYwNy00ZGU2LTlhOTAtNGI5ZmMxMDY0OTU1eHcjPHAgY2xhc3M9Imhhcy1sYXJnZS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcFbGFyZ2V3JGFjYWVlZDYyLWY0YTctNDJlYS1iNmUwLTljNDFjZmU0YzAwYXh3pgI8cD5UbyB1bmRlcnN0YW5kIHRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2YgdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMsIG9uZSBtdXN0IGltYWdpbmUgdGhlIHdvcmxkIGluIHdoaWNoIHRoZXkgZW1lcmdlZDogYW4gZW1waXJlIGluIGl0cyBmaW5hbCBzdGFnZXMsIGEgc29jaWV0eSBpbiB0cmFuc2l0aW9uLCBhbmQgYW4gYWRtaW5pc3RyYXRpb24gdGhhdCBpbiBtYW55IHJlZ2lvbnMgd2FzIGxpdHRsZSBtb3JlIHRoYW4gYSB0aGluIHZlbmVlciBvdmVyIGxvY2FsIGF1dG9ub215LjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOGU0NTczY2QtY2U3Yy00MjA0LThiZWMtY2YyNWNiM2U0ZDNheHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckNTk1OTg5Y2QtZmJhZC00Zjg1LThkOWItYmNjNjZiYzIxNDg4eHf4AjxwPkJ5IHRoZSBlbmQgb2YgdGhlIDE5dGggY2VudHVyeSwgdGhlIFFpbmcgZHluYXN0eSB3YXMgbm8gbG9uZ2VyIHRoZSB1bmNoYWxsZW5nZWQgcG93ZXIgaXQgb25jZSBoYWQgYmVlbi4gRGVjYWRlcyBvZiBpbnRlcm5hbCB1cHJpc2luZ3Mg4oCTIGZyb20gdGhlIFRhaXBpbmcgUmViZWxsaW9uIHRvIHRoZSBOaWFuIFJlYmVsbGlvbiDigJMgaGFkIGJsZWQgdGhlIGVtcGlyZSBkcnkuIERlZmVhdHMgaW4gdGhlIE9waXVtIFdhcnMgYW5kIHRoZSBGaXJzdCBTaW5vLUphcGFuZXNlIFdhciAoMTg5NOKAkzE4OTUpIGhhZCBleHBvc2VkIHRoZSBtaWxpdGFyeSdzIHdlYWtuZXNzIGFuZCBmb3JjZWQgdGhlIGNvdW50cnkgaW50byB1bmVxdWFsIHRyZWF0aWVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYTA3NzI1ZjQtNmUyYi00YWI2LWE4YzUtNmI2YWE5Mjg5NGUzeHckPGRpdiBjbGFzcz0id3AtYmxvY2stZ3JvdXAiPgoKPC9kaXY+dwpjb3JlL2dyb3VwdwNkaXZ2AgR0eXBldwRmbGV4CGZsZXhXcmFwdwZub3dyYXB3JGVmMDBhZmJlLTc3YTEtNDhkMi04M2Y4LTY0NGJiM2NlMzk0NHh3lwE8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L0NpeGkud2VicCIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS0xMTIwIi8+PC9maWd1cmU+dwpjb3JlL2ltYWdldztodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L0NpeGkud2VicHcAfaARdwRmdWxsdwRub25ldyQ0MDhmYWFjOC1kZDljLTRjMzQtOWM5Ny1kNzBhNzMxNDAzM2R4d7wCPHA+SW4gbWFueSBwcm92aW5jZXMsIGltcGVyaWFsIGF1dGhvcml0eSBleGlzdGVkIG9ubHkgb24gcGFwZXIuIExvY2FsIG9mZmljaWFscyBoYWQgdG8gbWFpbnRhaW4gb3JkZXIsIGNvbGxlY3QgdGF4ZXMsIGFuZCBzZWN1cmUgdHJhZGUgcm91dGVzIHdpdGggbGltaXRlZCByZXNvdXJjZXMuIFRoaXMgd2FzIG9mdGVuIG9ubHkgcG9zc2libGUgd2l0aCB0aGUgaGVscCBvZiBsb2NhbCBmb3JjZXMgd2lsbGluZyB0byB1c2UgdmlvbGVuY2Ug4oCTIGFuZCB0aGlzIGlzIHdoZXJlIHRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3MgY2FtZSBpbnRvIHBsYXkuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0ZDA0MmM2Ni01NjY1LTQ1ZDItODAyMC1lYTA5YWIyYzdlNGN4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRlNzk1MzRjMy0wZTJkLTQzYmMtOTZiMC04YzBkZWU2ZmEyY2J4d4cCPHA+VGhlIGhlYXJ0IG9mIGxvY2FsIGFkbWluaXN0cmF0aW9uIGJlYXQgaW4gdGhlIFlhbWVuLCB0aGUgb2ZmaWNpYWwgcmVzaWRlbmNlIG9mIHRoZSBkaXN0cmljdCBtYWdpc3RyYXRlLiBUaGlzIGlzIHdoZXJlIHRheGVzLCBqdXJpc2RpY3Rpb24sIGFuZCBwb2xpY2UgZHV0aWVzIGNvbnZlcmdlZC4gSG93ZXZlciwgdGhlIHlhbWVuIHJhcmVseSBoYWQgZW5vdWdoIHRyYWluZWQgcGVyc29ubmVsIHRvIGNvbnNpc3RlbnRseSBlbmZvcmNlIHRoZSBsYXdzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNjY4MWVjYmUtNjc4ZC00M2Y2LWIyMzEtNjQwOTI5OGZlMjVieHeQAzxwPlRoYXQgaXMgd2h5IHRoZXkgcmVsaWVkIG9uIHlhbWVuIHJ1bm5lcnMg4oCTIG9mZmljaWFscyB3aG8gY2FycmllZCBvdXQgYXJyZXN0cywgY29sbGVjdGVkIHRheGVzIGFuZCwgaWYgbmVjZXNzYXJ5LCBhbHNvIGNvbGxlY3RlZCBkZWJ0cyBvbiBiZWhhbGYgb2YgdGhlIG1hZ2lzdHJhdGUuIFRoZXNlIG1lbiB3ZXJlIG5vdCBhbHdheXMgb2ZmaWNpYWxzIGluIHRoZSBtb2Rlcm4gc2Vuc2UsIGJ1dCBvZnRlbiByZWNydWl0ZWQgZmlnaHRlcnMgd2l0aCBnb29kIGxvY2FsIGNvbm5lY3Rpb25zLiBJbiBwcmFjdGljZSwgdGhpcyBtZWFudCB0aGF0IHRoZXkgd2VyZSB3b3JraW5nIG9uIGJlaGFsZiBvZiB0aGUgc3RhdGUgYW5kIG9uIHRoZWlyIG93biBidXNpbmVzcyBhdCB0aGUgc2FtZSB0aW1lLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZjRkMTIyMTgtMTZlOS00YzAzLTk1NDktZjJiOWJlMWYwNTc5eHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckODkwMTU3YjQtYjhmZi00ZWE4LWIzZmItNjA2MDljMGFjZjY4eHdCPHA+WmhpbGkgKG5vdyBIZWJlaSkgYW5kIFNoYW5kb25nIHdlcmUgcGFydGljdWxhcmx5IHNlbnNpdGl2ZTo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDdkOTEyZGEyLWRhNWEtNDVhZi05OGM5LWFkMzM2ODg3MDI5Ynh3pgE8cD7igKIgWmhpbGkgd2FzIGhvbWUgdG8gQmVpamluZywgdGhlIGNhcGl0YWwsIGFuZCB3YXMgdGhlIHBvbGl0aWNhbCBoZWFydCBvZiB0aGUgZW1waXJlLiBBdCB0aGUgc2FtZSB0aW1lLCBpdCB3YXMgbG9jYXRlZCBvbiBpbXBvcnRhbnQgdHJhZGUgYW5kIG1pbGl0YXJ5IHJvdXRlcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGI2ZmRhMzdmLTcwOWEtNGU0OS1iMjQzLTcyMzVjYmIwMDI3Mnh3rwE8cD7igKIgU2hhbmRvbmcgd2FzIGFncmljdWx0dXJhbGx5IHJpY2gsIGJ1dCBhbHNvIGNoYXJhY3Rlcml6ZWQgYnkgY29hc3RhbCB0cmFkZSBhbmQgZm9yZWlnbiBjb25jZXNzaW9ucyDigJMgYSBnYXRld2F5IGZvciBXZXN0ZXJuIHRyYWRlcnMsIG1pc3Npb25hcmllcywgYW5kIHRoZSBtaWxpdGFyeS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGUwNThhZjY5LTNjYWItNDM4OC1iY2ZkLWFkZmUxNDZlOTg4NXh34QE8cD5JbiBib3RoIHByb3ZpbmNlcywgdGhlIGNvbWJpbmF0aW9uIG9mIHN0cmF0ZWdpYyBpbXBvcnRhbmNlLCBoaWdoIGVjb25vbWljIGFjdGl2aXR5LCBhbmQgcG9saXRpY2FsIGluc3RhYmlsaXR5IG1lYW50IHRoYXQgbG9jYWwgcG93ZXIgbmV0d29ya3Mg4oCTIGluY2x1ZGluZyBtYXJ0aWFsIGFydHMgZ3JvdXBzIOKAkyB3ZXJlIGFibGUgdG8gZXhlcnQgZW5vcm1vdXMgaW5mbHVlbmNlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTMwYTRkY2EtNjcxMy00ZmRkLThkMzUtZDgwMzIzYzZhMzk2eHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckYmNmMTBhNTEtYmM1NC00ZDZiLTg5YzItMDJlOWY3YjcwODdjeHfKAjxwPkZvciBtZXJjaGFudHMsIGZhcm1lcnMsIGFuZCBjcmFmdHNtZW4sIGFybWVkIHByb3RlY3Rpb24gd2FzIG5vdCBhbiBvcHRpb24gYnV0IGEgbmVjZXNzaXR5LiBSb2JiZXJpZXMgb24gY291bnRyeSByb2FkcywgYXR0YWNrcyBieSByaXZhbCB2aWxsYWdlIGNvbW11bml0aWVzLCBhbmQgZXh0b3J0aW9uIGJ5IGdhbmdzIHdlcmUgcGFydCBvZiBldmVyeWRheSBsaWZlLiBUaG9zZSB3aG8gY291bGQgYWZmb3JkIGl0IGhpcmVkIGd1YXJkcyDigJMgb2Z0ZW4gZnJvbSB0aGUgc2FtZSBuZXR3b3JrcyB0aGF0IHdlcmUgYWxzbyBpbiB0aGUgc2VydmljZSBvZiB0aGUgeWFtZW4uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmN2ViODBjMy1hMTJkLTQ5M2MtYjE0Ny1kOTIzZGE3ZTQ0Y2V4d5UCPHA+VGhpcyBtaXhpbmcgb2YgcHVibGljIG9yZGVyIGFuZCBwcml2YXRlIHVzZSBvZiBmb3JjZSB3YXMgbm90IGFuIGFidXNlIGluIHRoZSBtb2Rlcm4gc2Vuc2UsIGJ1dCBhbiBpbnRlZ3JhbCBwYXJ0IG9mIHRoZSBzeXN0ZW0uIFdpdGhvdXQgdGhlc2Ug4oCcc2VjdXJpdHkgZW50cmVwcmVuZXVycyzigJ0gbWFueSBtYXJrZXRzIHdvdWxkIG5vdCBoYXZlIGZ1bmN0aW9uZWQgYW5kIG1hbnkgY2FyYXZhbnMgd291bGQgbm90IGhhdmUgcmVhY2hlZCB0aGVpciBkZXN0aW5hdGlvbnMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ5M2QxNTJkOC1kNDgzLTRiM2ItOWUxNC1jMjc2YzAxZGM1Zjl4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQwZmZkOWFlZi05MGM0LTQ3ODYtYjhmNi0zNjIwODNiNmFkOWN4d98CPHA+QWxsIHRoZXNlIGZhY3RvcnPigJR3ZWFrIGNlbnRyYWwgcG93ZXIsIGZsZXhpYmxlIGxvY2FsIGFkbWluaXN0cmF0aW9uLCBoaWdoIGRlbWFuZCBmb3IgcHJvdGVjdGlvbiwgYW5kIHRoZSBzdHJhdGVnaWMgbG9jYXRpb24gb2Ygbm9ydGhlcm4gQ2hpbmHigJRjcmVhdGVkIHRoZSBpZGVhbCBicmVlZGluZyBncm91bmQgZm9yIGNvbXBsZXgsIG11bHRpLWxheWVyZWQgbWFydGlhbCBhcnRzIG5ldHdvcmtzLiBUaGV5IGZpbGxlZCB0aGUgZ2FwcyB0aGF0IHRoZSBzdGF0ZSBjb3VsZCBub3Qgb3Igd291bGQgbm90IGNsb3NlIGFuZCBiZWNhbWUgYW4gaW50ZWdyYWwgcGFydCBvZiB0aGUgc29jaWFsIGZhYnJpYy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDkwMDllMmZiLTgwYzUtNDg3MC04YTg1LThiZjM2N2FhZjhjNHh3IzxwIGNsYXNzPSJoYXMtbGFyZ2UtZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3BWxhcmdldyQwM2MwYjdjOC1hYmIzLTQyMzktOGFkYS0xYjU0YjNmOGU5YWJ4d\/4CPHA+VGhlIG1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZiBub3J0aGVybiBDaGluYSBpbiB0aGUgbGF0ZSAxOXRoIGFuZCBlYXJseSAyMHRoIGNlbnR1cmllcyB3ZXJlIG5vdCBhIGhvbW9nZW5lb3VzIGJsb2NrLiBUaGV5IGNvbnNpc3RlZCBvZiBwZW9wbGUgd2hvIGhhZCB2ZXJ5IGRpZmZlcmVudCBwcm9mZXNzaW9ucywgc29jaWFsIHBvc2l0aW9ucywgYW5kIGxpZmUgc3RvcmllcyDigJMgY29ubmVjdGVkIGJ5IGEgY29tbW9uIGFzc2V0OiB0aGUgYWJpbGl0eSB0byB1c2UgdmlvbGVuY2UgYW5kIG1vdmUgaW4gYSBtaWxpZXUgd2hlcmUgbG95YWx0eSwgcmVwdXRhdGlvbiwgYW5kIG5ldHdvcmtzIHdlcmUgbW9yZSBpbXBvcnRhbnQgdGhhbiBvZmZpY2lhbCB0aXRsZXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRiOWNhZWUwYy04NGJiLTQ0NDItOGJjMS0zNjk3MjQ1YTM3NTh4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRjYzlmZDM0My05YTAzLTQ4MTQtYTRmOC0wZjA4ODE1YmQzNzd4dyQ8ZGl2IGNsYXNzPSJ3cC1ibG9jay1ncm91cCI+Cgo8L2Rpdj53CmNvcmUvZ3JvdXB3A2RpdnYCBHR5cGV3BGZsZXgIZmxleFdyYXB3Bm5vd3JhcHckMjM3ZDllMmItYTY4Yi00NTk0LThkYjktNzUzNmQ0MjhkNTI4eHeVAzxwPlRoZSBZYW1lbiBSdW5uZXJzIHN0b29kIGF0IHRoZSBpbnRlcmZhY2UgYmV0d2VlbiBhZG1pbmlzdHJhdGlvbiBhbmQgdGhlIHN0cmVldC4gT2ZmaWNpYWxseSwgdGhleSB3ZXJlIGFzc2lzdGFudHMgdG8gdGhlIG1hZ2lzdHJhdGUsIHJlc3BvbnNpYmxlIGZvciBhcnJlc3RzLCB0YXggYW5kIGRlYnQgY29sbGVjdGlvbiwgb3IgdGhlIGRlbGl2ZXJ5IG9mIG9mZmljaWFsIGluc3RydWN0aW9ucy4gVW5vZmZpY2lhbGx5LCBtYW55IHVzZWQgdGhlaXIgcG9zaXRpb24gdG8gZW5nYWdlIGluIHNpZGUgYnVzaW5lc3NlczogY29sbGVjdGluZyBwcm90ZWN0aW9uIG1vbmV5LCB3b3JraW5nIGFzIHByaXZhdGUgYm9keWd1YXJkcywgb3IgdGFraW5nIG9uIGFzc2lnbm1lbnRzIGZyb20gdGhlIHVuZGVyd29ybGQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhNWI0YWNhYy1kYzUzLTQyNjAtYmE2Ni00OTJjNjAzZjk0ODR4d\/UBPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vYmFndWEtemhhbmcuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDgvMTYwMHB4LVlhbWVuLXNpdHp1bmctMTAyNHg3MzAuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTExMTIiLz48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5ZYW1lbiAoV2lraXBlZGlhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT53CmNvcmUvaW1hZ2V3U2h0dHBzOi8vYmFndWEtemhhbmcuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDgvMTYwMHB4LVlhbWVuLXNpdHp1bmctMTAyNHg3MzAuanBndwB9mBF3BWxhcmdldwRub25ldyRjMjVlYzBmMC0wMDQ3LTQyMDEtOTc0YS0zMmE0NzAwMzhmNDh4d4oCPHA+U29tZSBvZiB0aGVzZSBydW5uZXJzIHdlcmUgdHJhaW5lZCBmaWdodGVycywgb3RoZXJzIGhhZCBsZWFybmVkIHRoZWlyIHNraWxscyBvbiB0aGUgc3RyZWV0cy4gVGhlaXIgYWNjZXNzIHRvIGluZm9ybWF0aW9uIOKAkyB3aG8gb3dlZCBtb25leSB0byB3aG9tLCB3aGVyZSB3YW50ZWQgcGVyc29ucyB3ZXJlIHN0YXlpbmcg4oCTIG1hZGUgdGhlbSBzb3VnaHQtYWZ0ZXIgcGFydG5lcnMgZm9yIGJvdGggbWVyY2hhbnRzIGFuZCBzZWNyZXQgc29jaWV0aWVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNTlhNzAxMWQtZDJlYS00ODA1LWE5YTMtMDlkNjk1OTA5Mjk2eHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckYmNmNjQ4NmMtMjkxOS00M2VjLWJmY2ItZTUzNGVkZjQwMmIzeHfRAjxwPkFub3RoZXIgaW1wb3J0YW50IGdyb3VwIHdlcmUgdGhlIG1lbiBvZiB0aGUgQmlhb2p1cywgdGhlIGVzY29ydCBhZ2VuY2llcy4gVGhleSBhY2NvbXBhbmllZCBtZXJjaGFudCBjYXJhdmFucywgdHJhbnNwb3J0ZWQgdmFsdWFibGUgZ29vZHMsIGFuZCBndWFyYW50ZWVkIHNhZmV0eSBvbiBvZnRlbiB1bnNhZmUgcm91dGVzLiBUaGVpciB3b3JrIGJyb3VnaHQgdGhlbSBpbnRvIGNvbnRhY3Qgd2l0aCBhbGwga2luZHMgb2YgYXJtZWQgZ3JvdXBzOiBiYW5kaXRzLCBtaWxpdGlhcywgY29tcGV0aW5nIGVzY29ydCBjb21wYW5pZXMg4oCTIGFuZCBhbHNvIGNvcnJ1cHQgb2ZmaWNpYWxzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYzUwZWUyZTUtMzVlOC00ZjJlLWJmMWEtZTU2NmM5YTQ0YmFheHf\/ATxwPkJpYW9qdXMgd2VyZSBvZnRlbiBjbG9zZWx5IGFzc29jaWF0ZWQgd2l0aCBtYXJ0aWFsIGFydHMgc2Nob29scyBiZWNhdXNlIHRoZXkgdHJhaW5lZCB0aGVpciBtZW4gaW4gY2xvc2UgY29tYmF0LCB3ZWFwb24gdXNlLCBhbmQgdGFjdGljcyBhZ2FpbnN0IHJhaWRzLiBTb21lIGZhbW91cyBtYXN0ZXJzLCBzdWNoIGFzIERvbmcgSGFpY2h1YW4gbGF0ZXIgb24sIHVzZWQgc3VjaCBjb250YWN0cyB0byBleHBhbmQgdGhlaXIgbmV0d29ya3MuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4MzBlMDVjNC0wM2JlLTQ3N2EtOWVhMy1jYjE4OThlMWI1NWR4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRiN2EzYjIyNy05MzFlLTQ0MDYtYjI3NC05NGIyZDdkNDZjZTN4d7gCPHA+SW4gcG9ydCBjaXRpZXMgc3VjaCBhcyBUaWFuamluLCBhbm90aGVyIGdyb3VwIHBsYXllZCBhbiBpbXBvcnRhbnQgcm9sZTogZG9ja3dvcmtlcnMsIHBvcnRlcnMsIGFuZCBndWlsZCBndWFyZHMuIFRoZXNlIG1lbiBjb250cm9sbGVkIG5vdCBvbmx5IHRoZSBmbG93IG9mIGdvb2RzIGJ1dCBhbHNvIGFjY2VzcyB0byBjZXJ0YWluIHdvcmtwbGFjZXMuIFRob3NlIHdobyBoYWQgaW5mbHVlbmNlIGhlcmUgY291bGQgcGFyYWx5emUgZW50aXJlIHN1cHBseSBjaGFpbnPigJRvciBzZWN1cmUgdGhlbSBpbiBleGNoYW5nZSBmb3IgcGF5bWVudC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDNkZWZlNjI2LTJkZDUtNGNmOS1iMDliLTA1M2IzMDAzZDU1OHh3lwI8cD5NYW55IHBvcnQgZ3VhcmRzIGJlbG9uZ2VkIHRvIGluZm9ybWFsIG1hcnRpYWwgYXJ0cyBncm91cHMgdGhhdCBkZWZlbmRlZCB0aGVpciBuZWlnaGJvcmhvb2RzIG9yIHByb3RlY3RlZCB0aGVpciBndWlsZHMgZnJvbSBjb21wZXRpdGlvbi4gSW4gYSBwb3J0IGRpc3RyaWN0LCBpdCB3YXMgY29tbW9uIHRvIHNlZSBhIGZvcm1lciBzb2xkaWVyLCBhIGZpc2hlcm1hbiwgYW5kIGEgY2FyYXZhbiBndWFyZCB0cmFpbmluZyB0b2dldGhlciBpbiB0aGUgc2FtZSB0cmFpbmluZyBoYWxsLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTkxNzQyZGUtYzViOC00ZTQ3LWEzN2EtMGNmMGU3NmZkYWRieHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckNjU4NGFjNjQtNmQxNy00NmNmLTk4NGQtYjkzNWI1YzYwYjM3eHfUAjxwPlRoZSBiYWNrYm9uZSBvZiB0aGUgbmV0d29ya3Mgd2FzIHRoZSBtYXN0ZXItc3R1ZGVudCByZWxhdGlvbnNoaXAuIEEgbWFzdGVyIHdhcyBub3Qgb25seSBhIHRlYWNoZXIsIGJ1dCBvZnRlbiBhbHNvIGEgam9iIGJyb2tlciwgYSBndWFyYW50b3Igb2YgcHJvdGVjdGlvbiwgYW5kIGEgZG9vciBvcGVuZXIgdG8gY29udGFjdHMgaW4gb3RoZXIgY2l0aWVzLiBTdHVkZW50cyBvd2VkIGhpbSBub3Qgb25seSByZXNwZWN0LCBidXQgb2Z0ZW4gYWxzbyBhbGxlZ2lhbmNlIGluIHByYWN0aWNhbCBtYXR0ZXJzIOKAkyBmcm9tIGVzY29ydCBhc3NpZ25tZW50cyB0byBwb2xpdGljYWwgZmF2b3JzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZDY1NTkxNDctZjExZC00Nzk2LTg2MzItOGFlMTI3OGJhOGQ1eHftATxwPlRoZXNlIHJlbGF0aW9uc2hpcHMgb2Z0ZW4gc3Bhbm5lZCBnZW5lcmF0aW9ucy4gQSBzdHVkZW50IGNvdWxkIGJlY29tZSBhIG1hc3RlciBoaW1zZWxmIHllYXJzIGxhdGVyIGFuZCBzdGlsbCBzaG93IGxveWFsdHkgdG8gaGlzIG9yaWdpbmFsIHRlYWNoZXIgb3IgaGlzIGZhbWlseS4gVGhpcyBjcmVhdGVkIG5ldHdvcmtzIHRoYXQgY29ubmVjdGVkIHZpbGxhZ2VzLCBjaXRpZXMsIGFuZCBwcm92aW5jZXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmODFhY2M2Yi01Y2Y3LTRhNTQtYWRlYi03NzZkYTI1NmVjODJ4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRmMjhlNzYxNy02YmM3LTQxNTQtOTdkNi0wNjU0YWRjNGFhMDR4d7cCPHA+VGhlc2UgbmV0d29ya3MgaGFkIG5vIGNsdWIgc3RydWN0dXJlLCBubyBtZW1iZXJzaGlwIGNhcmRzLCBhbmQgbm8gY2VudHJhbCBzdGF0dXRlcy4gVGhleSB3ZXJlIGxvb3NlIGJ1dCByb2J1c3QgbmV0d29ya3MgYmFzZWQgb24gdHJ1c3QsIGNvbW1vbiBpbnRlcmVzdHMsIGFuZCBhIGNsZWFyIGhpZXJhcmNoeS4gQW55b25lIHdobyB3YW50ZWQgdG8gYmVsb25nIGhhZCB0byBwcm92ZSB0aGVtc2VsdmVzIOKAkyBvbiB0aGUgbWF0LCBvbiB0aGUgc3RyZWV0LCBhbmQgaW4gdGhlaXIgZGVhbGluZ3Mgd2l0aCB0aGUgcmlnaHQgcGVvcGxlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYzhmYzUwYmQtZWY1Yi00Zjk0LWEzZmItOTBhODYwNGI3Y2RjeHcjPHAgY2xhc3M9Imhhcy1sYXJnZS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcFbGFyZ2V3JDNjMTIxMzI5LTM3MTItNDYzZi05MTljLTZmYzUwM2EyMTM0OHh3ogM8cD5UaGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIG5vcnRoZXJuIENoaW5hIGZ1bmN0aW9uZWQgbGlrZSBtdWx0aS1sYXllcmVkIHNlcnZpY2UgY29tcGFuaWVzIOKAkyBvbmx5IHdpdGhvdXQgYSBjbGVhciBib3VuZGFyeSBiZXR3ZWVuIGxlZ2FsIGFuZCBpbGxlZ2FsLiBUaGV5IG9mZmVyZWQgcHJvdGVjdGlvbiwgb3JnYW5pemVkIHRyYW5zcG9ydGF0aW9uLCBnYXRoZXJlZCBpbmZvcm1hdGlvbiwgYW5kIGNvdWxkIGFsc28gdXNlIHZpb2xlbmNlIGlmIG5lY2Vzc2FyeS4gVGhlaXIgc3RyZW5ndGggbGF5IG5vdCBvbmx5IGluIHRoZSBmaXN0cyBvZiB0aGVpciBtZW1iZXJzLCBidXQgYWxzbyBpbiB0aGVpciBzdHJ1Y3R1cmU6IG1vYmlsZSwgYWRhcHRhYmxlLCBhbmQgbmV0d29ya2VkIGFjcm9zcyBtYW55IGxvY2F0aW9ucy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDQwYmI2ZjBlLTQ5MTctNDk5Yy04YWM0LTM1ZjUzNTY5ZWJiNnh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDdlNjcyODA3LWVhY2MtNGI5NC05MTc1LWQ4OTgwY2Y2ODBiZHh35AE8cD5TZWNyZXQgc2lnbnMsIHNwZWNpZmljIGdyZWV0aW5ncywgb3IgcGhyYXNlcyBoZWxwZWQgbWVtYmVycyBpZGVudGlmeSBlYWNoIG90aGVyLiBUaGlzIGFsbG93ZWQgYW4gZXNjb3J0IGxlYWRlciBpbiBTaGFuZG9uZyB0byByZWNvZ25pemUgYSBkb2NrIHdvcmtlciBpbiBUaWFuamluIGFzIGEg4oCcYnJvdGhlciBpbiB0aGUgY2lyY2xl4oCdIHdpdGhvdXQgb3V0c2lkZXJzIG5vdGljaW5nLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMWIwZDI0MzItMmEzYS00ZjliLTg5YzgtYWY1OWU0NDNmNWEyeHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckZThhYzRjMWQtNzc4YS00Mzk0LTk3OGItYmU3ZDVlNDEzNzNieHefAjxwPllvdSBjb3VsZG4ndCBqdXN0IGpvaW4gdGhlc2UgbmV0d29ya3MgYnkgc2lnbmluZyB1cC4gTmV3IG1lbWJlcnMgd2VyZSBhbG1vc3QgYWx3YXlzIGludHJvZHVjZWQgYnkgc29tZW9uZSB3aG8gd2FzIGFscmVhZHkgcGFydCBvZiB0aGUgbmV0d29yay4gVGhlIGZpcnN0IHN0ZXAgd2FzIG9mdGVuIHRyYWluaW5nIHdpdGggYSByZWNvZ25pemVkIG1hc3Rlci4gVGhvc2Ugd2hvIHNob3dlZCBub3Qgb25seSB0YWxlbnQgYnV0IGFsc28gbG95YWx0eSB3ZXJlIHJlY29tbWVuZGVkIHRvIG90aGVycy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDgyZjMwNjZhLTkxMTItNDFmNS1iYzFkLTA1N2FmMzRkZjU2N3h3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDQ4NDVmZjAwLWNjZWItNDIwOS1iODhhLWNmZmRjZjczOWU0Y3h39gM8cD5UaGUgc3VjY2VzcyBvZiBhIG5ldHdvcmsgZGVwZW5kZWQgb24gZXhlcmNpc2luZyBwb3dlciB3aXRob3V0IGF0dHJhY3RpbmcgdW5uZWNlc3NhcnkgYXR0ZW50aW9uIGZyb20gdGhlIGF1dGhvcml0aWVzIG9yIHJpdmFsIGdyb3Vwcy4gVG9vIG11Y2ggb3BlbiB2aW9sZW5jZSBjb3VsZCBwcm92b2tlIGEgcHVuaXRpdmUgZXhwZWRpdGlvbiBieSB0aGUgeWFtZW4gb3IgdGhlIGludGVydmVudGlvbiBvZiBhIHNlY3JldCBzb2NpZXR5LiBUaGF0IGlzIHdoeSBkaXBsb21hY3kgd2FzIGp1c3QgYXMgaW1wb3J0YW50IHdpdGhpbiB0aGVzZSBzdHJ1Y3R1cmVzIGFzIG1hcnRpYWwgYXJ0cy4gQW4gZXhwZXJpZW5jZWQgbWFzdGVyIGNvdWxkIHNldHRsZSBjb25mbGljdHMgYmVmb3JlIHRoZXkgZXNjYWxhdGVkIOKAkyBvZnRlbiB0aHJvdWdoIHBlcnNvbmFsIG1lZXRpbmdzIHdoZXJlIHRlYSwgcG9saXRlIHBocmFzZXMgYW5kIHN1YnRsZSB0aHJlYXRzIGZsb3dlZCB0b2dldGhlci48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGQyYWUzOGZmLTU3YjMtNGZlZi04MjkzLWQwYzkyYzdkNDgxOXh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDNiNTRlMjAyLTQxYjctNGI5Yi04ZTY5LTBhMThiODAzZWIzNHh3iQI8cD5BbHRob3VnaCBtYW55IG1lbWJlcnMgd2VyZSB0aGVyZSBmb3IgdGhlIGluY29tZSwgbW9uZXkgd2FzIG5vdCB0aGUgb25seSBjdXJyZW5jeS4gSG9ub3IgYW5kIHJlcHV0YXRpb24gZGV0ZXJtaW5lZCB3aG8gZ290IHRoZSBnb29kIGpvYnMuIEFueW9uZSB3aG8gYm90Y2hlZCBhbiBlc2NvcnQgam9iIG9yIGNoZWF0ZWQgYSBjbGllbnQgcmlza2VkIG5vdCBvbmx5IHRoZWlyIHBsYWNlIGluIHRoZSBuZXR3b3JrLCBidXQgcG9zc2libHkgdGhlaXIgbGlmZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDlhNjU2YTQ2LTQwYzgtNDA4Zi1iZGNiLThiOTgyM2IzYWZmMnh3vgE8cD5BIHN0cm9uZyByZXB1dGF0aW9uLCBvbiB0aGUgb3RoZXIgaGFuZCwgY291bGQgbGFzdCBmb3IgZGVjYWRlcy4gU29tZSBtYXN0ZXJzIHN0aWxsIHJlY2VpdmVkIGdpZnRzIG9yIGZhdm9ycyBpbiB0aGVpciBvbGQgYWdlIGZyb20gbWVyY2hhbnRzIHdob3NlIGdyYW5kZmF0aGVycyB0aGV5IGhhZCBvbmNlIHByb3RlY3RlZC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDc5NGZjOWZjLTZlM2QtNGNjZS1hYTE5LWU0NDQzYzBjNGZjOXh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JGI3YzBkNTcxLTkwZGItNGQ3Yi1iYThlLTNmMGE0NGU3YWFhMnh36gI8cD5BIHdlbGwta25vd24gbWFzdGVyIG9yIGV4cGVyaWVuY2VkIGZpZ2h0ZXIgb2Z0ZW4gZGlkIG5vdCBldmVuIG5lZWQgdG8gc3RyaWtlIOKAkyBoaXMgbmFtZSBhbG9uZSB3YXMgZW5vdWdoIHRvIGF2b2lkIGNvbmZsaWN0LiBNZXJjaGFudHMgcHJlZmVycmVkIHRvIHBheSBwcm90ZWN0aW9uIG1vbmV5IHRvIHNvbWVvbmUgd2l0aCBhIGZlYXJlZCByZXB1dGF0aW9uIHJhdGhlciB0aGFuIHJpc2sgcHJvdm9raW5nIHRoZWlyIHdyYXRoLiBSaXZhbHMgdGhvdWdodCB0d2ljZSBiZWZvcmUgbWVzc2luZyB3aXRoIGEgbWFuIHdobyB3YXMgcnVtb3JlZCB0byBoYXZlIHJlbWFpbmVkIHVuZGVmZWF0ZWQgaW4gYSBkb3plbiBmaWdodHMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyZDkxZTdiYy1kNzM0LTRmZDYtYWQ3My02MDMzNDNkMTI2ZDl4d+kBPHA+VGhpcyByZXB1dGF0aW9uIHdhcyBidWlsdCBub3Qgb25seSB0aHJvdWdoIHZpY3RvcmllcyBpbiBjb21iYXQsIGJ1dCBhbHNvIHRocm91Z2ggYmVoYXZpb3Igb3V0c2lkZSB0aGUgdHJhaW5pbmcgaGFsbDogZ2VuZXJvc2l0eSB0b3dhcmRzIHN0dWRlbnRzLCBob25vciBpbiBidXNpbmVzcywga2VlcGluZyBwcm9taXNlcy4gQSBzaW5nbGUgYmV0cmF5YWwgY291bGQgZGVzdHJveSBldmVyeXRoaW5nLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODM1Zjg1MmMtZmI0Ni00NDNlLWFmMzctYWNhMzdlYmJkNmZjeHejBDxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4LzEyMDAwOTc1XzEwMTUzMDU0Njc4MTMyNDExXzgwMjM4MjU1MTc5MDg1NjAwNDRfby0xMDI0eDc2OC5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtMTExNCIvPjxmaWdjYXB0aW9uIGNsYXNzPSJ3cC1lbGVtZW50LWNhcHRpb24iPkxpw7ogU2jDrGppw6kgKOWKieWjq+WCkSwgMTg2NOKAkzE5MzApIGFuIGVzY29ydCBndWFyZCB3b3JraW5nIGZvciBUw7NuZ3jDrG5nZ8WNbmcgKOWQjOiIiOWFrCksIDxicj5Ub25neGluZ2dvbmcgTXVzZXVtLCBQaW5neWFvIChMYXVyZW50IENoaXJjb3AtUmV5ZXM7IElsbGVnYWwgQ2FyYXZhbiBUcmFkZSBhbmQgT3V0bGF3IEFybWVkIEVzY29ydHMgaW4gdGhlIFFpbmcgRHluYXN0eTogQ3JpdGljYWwgQW5hbHlzaXMgb2YgVHdvIDE4dGggQ2VudHVyeSBNZW1vcmlhbHMgTGF1cmVudCBDaGlyY29wLVJleWVzKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT53CmNvcmUvaW1hZ2V3b2h0dHBzOi8vYmFndWEtemhhbmcuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDgvMTIwMDA5NzVfMTAxNTMwNTQ2NzgxMzI0MTFfODAyMzgyNTUxNzkwODU2MDA0NF9vLTEwMjR4NzY4LmpwZ3cAfZoRdwVsYXJnZXcEbm9uZXckNTE5YzlmMDEtYWNkNi00OTk2LTg3YjItNjJiMDJkMDI3OWQweHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckOTI4YzllNDMtMzI3Yi00NDdmLTkzMWItMmYwMGI5M2E0NmRieHf6AjxwPkNlcnRhaW4gbWFydGlhbCBhcnRzIHdlcmUgY29uc2lkZXJlZCBwYXJ0aWN1bGFybHkgcHJlc3RpZ2lvdXMuIFN0eWxlcyBzdWNoIGFzIEJhZ3VhemhhbmcsIFhpbmd5aXF1YW4sIG9yIFRvbmdiZWlxdWFuIHdlcmUga25vd24gaW4gbm9ydGhlcm4gQ2hpbmEgbm90IG9ubHkgZm9yIHRoZWlyIGVmZmVjdGl2ZW5lc3MgYnV0IGFsc28gZm9yIHRoZWlyIGV4Y2x1c2l2aXR5LiBUaG9zZSB3aG8gbWFzdGVyZWQgb25lIG9mIHRoZXNlIHN0eWxlcyDigJMgYW5kIGRlbW9uc3RyYXRlZCB0aGlzIGluIHBlcmZvcm1hbmNlcyBvciByZWFsLWxpZmUgY29uZnJvbnRhdGlvbnMg4oCTIGZvdW5kIGl0IGVhc2llciB0byBlbnRlciBoaWdoLXJhbmtpbmcgbmV0d29ya3MuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4MWY4M2Y1Mi1hN2M1LTRmZjEtYjNkNS1hNzc2MDg0Mzc2OTV4d+4BPHA+TWFueSB5YW1lbiBydW5uZXJzIGFuZCBlc2NvcnQgbGVhZGVycyB1c2VkIHRoZWlyIHNraWxscyB0byBnYWluIGFjY2VzcyB0byB3ZWFsdGh5IGNsaWVudHMuIEEgbWFzdGVyIHdobyB0cmFpbmVkIHRoZSBib2R5Z3VhcmRzIG9mIGEgcHJvdmluY2lhbCBvZmZpY2lhbCwgZm9yIGV4YW1wbGUsIGNvdWxkIGJlIGFsbW9zdCBjZXJ0YWluIG9mIHJlY2VpdmluZyBwb2xpdGljYWwgYmFja2luZyBpbiByZXR1cm4uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ3MmQ4YmVlNy0zYjZmLTRkNzItYTY1Mi01YWRmNjFlZjQzNzh4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQ5ZWQ2ZDJkZC05MmEzLTRmMTgtOTgzMC0zZjI4MGU2NDE2YmN4d5kDPHA+VGhlIGJvbmQgYmV0d2VlbiBtYXN0ZXIgYW5kIHN0dWRlbnQgd2FzIG9mdGVuIGNsb3NlciB0aGFuIHRoYXQgYmV0d2VlbiBidXNpbmVzcyBwYXJ0bmVycyBvciBldmVuIGZhbWlseSBtZW1iZXJzLiBBIHN0dWRlbnQgd2hvIHJlbWFpbmVkIGxveWFsIHRvIGhpcyB0ZWFjaGVyIGNvdWxkIGNvdW50IG9uIGdldHRpbmcgd29yaywgYWNjb21tb2RhdGlvbiwgb3IgcHJvdGVjdGlvbiB3aGVuIG5lZWRlZC4gQ29udmVyc2VseSwgYSBtYXN0ZXIgY291bGQgZXhlcnQgaW5mbHVlbmNlIGluIG90aGVyIGNpdGllcyB0aHJvdWdoIGhpcyBzdHVkZW50c+KAlGVhY2ggd2VsbC1wbGFjZWQgc3R1ZGVudCB3YXMgbGlrZSBhbiDigJxpbnZlc3RtZW50IHBvaW504oCdIGluIHRoZSB0ZWFjaGVyJ3Mgc29jaWFsIGNhcGl0YWwuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRiYmUzZmI5NS0xM2EwLTQ2MjctODA2Mi02OWMxZGRkYWM1ODR4d6cBPHA+VGhlc2UgYm9uZHMgb2Z0ZW4gbGFzdGVkIGZvciBnZW5lcmF0aW9ucy4gQSBncmFuZHNvbiBjb3VsZCBzdGlsbCBiZW5lZml0IGZyb20gdGhlIHJlbGF0aW9uc2hpcHMgaGlzIGdyYW5kZmF0aGVyIGhhZCBlc3RhYmxpc2hlZCBhcyBhIHN0dWRlbnQgb2YgYSBmYW1vdXMgbWFzdGVyLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYmIxMWRhNGMtYTk5Ny00MDY0LThlODEtMGJlMTc1N2RjOTdjeHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckMzkyNWU3MDMtYWU4Ny00ODlkLWFlNzgtNGFmNjE3NWViMWU4eHe3AzxwPkluIGEgdGltZSB3aXRob3V0IGhlYWx0aCBvciBhY2NpZGVudCBpbnN1cmFuY2UsIG1hcnRpYWwgYXJ0cyBjb3VsZCBhY3R1YWxseSBtZWFuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbGlmZSBhbmQgZGVhdGguIFRob3NlIHdobyB3b3JrZWQgaW4gZGFuZ2Vyb3VzIHByb2Zlc3Npb25z4oCUd2hldGhlciBhcyBjYXJhdmFuIGxlYWRlcnMsIGRvY2t3b3JrZXJzLCBvciBiYWlsaWZmc+KAlGhhZCB0byByZWNrb24gd2l0aCByb2JiZXJpZXMsIGZpZ2h0cywgYW5kIHNwb250YW5lb3VzIGFsdGVyY2F0aW9ucy4gUGh5c2ljYWwgZml0bmVzcywgcXVpY2sgcmVhY3Rpb25zLCBhbmQgdGhlIGNvdXJhZ2UgdG8gdXNlIGZvcmNlIHdlcmUgbm90IG9ubHkgcGVyc29uYWwgYWR2YW50YWdlcyBidXQgYWxzbyBxdWFsaXRpZXMgdGhhdCBlbmhhbmNlZCBzb2NpYWwgc3RhdHVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODU4OTQ4NmItMjEyZi00ODYzLThlYWQtYjE2ZTU0MDkwNDQyeHcjPHAgY2xhc3M9Imhhcy1sYXJnZS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcFbGFyZ2V3JDIwNWRlODhhLWMxMzAtNGZiMS05Y2I5LTQ5ZGJmYWRlNGExNnh3mQI8cD5UaGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIG5vcnRoZXJuIENoaW5hIHJhcmVseSBzdG9vZCBhbG9uZS4gVGhleSB3ZXJlIGVtYmVkZGVkIGluIGEgbmV0d29yayBvZiBzZWNyZXQgc29jaWV0aWVzLCByZWxpZ2lvdXMgYnJvdGhlcmhvb2RzLCBzZWN0cywgYW5kIGNyaW1pbmFsIHN5bmRpY2F0ZXMsIG1hbnkgb2Ygd2hpY2ggaGFkIGV4aXN0ZWQgZm9yIGNlbnR1cmllc+KAlHNvbWUgd2l0aCBpZGVvbG9naWNhbCByb290cywgb3RoZXJzIHB1cmVseSBwcm9maXQtb3JpZW50ZWQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmYmNjMThhMi1mMDVlLTQxZGItYjdiZC05YzA2NGNlOWQ0Zjh4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRiMGYzOWQ1OS04YTQ2LTQxMDYtYTY5YS1mMDhkYjdlZWU0NTB4d0Y8cD5JbiBub3J0aGVybiBDaGluYSwgZm91ciBzdHJ1Y3R1cmVzIGluIHBhcnRpY3VsYXIgcGxheWVkIGEgcm9sZTo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGFiNWQ2MWEwLWM4ZDUtNDQ3Zi05OTBjLTE2NmJjNzkxNGIwNHh35AE8cD7igKIgPHN0cm9uZz5UaGUg4oCcQnJvdGhlcmhvb2RzIG9mIHRoZSBHcmVlbiBGb3Jlc3Rz4oCdIChMw7xsaW4pPC9zdHJvbmc+IOKAkyBsb29zZWx5IG9yZ2FuaXplZCBiYW5kaXQgZ2FuZ3MgdGhhdCBoaWQgaW4gaW5hY2Nlc3NpYmxlIHJlZ2lvbnMgc3VjaCBhcyBtb3VudGFpbnMgb3IgZm9yZXN0cyBhbmQgb2NjYXNpb25hbGx5IHdvcmtlZCBhcyBtZXJjZW5hcmllcyBvciBlc2NvcnRzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNWQyN2U0MTktMDFmYy00NWU4LWJkMzctMjMxZDQ5MGU2ZTAweHeRAjxwPuKAoiA8c3Ryb25nPlRoZSDigJxIZWF2ZW4gYW5kIEVhcnRoIFNvY2lldHnigJ0gKFRpYW5kaWh1aSkgPC9zdHJvbmc+4oCTIG9yaWdpbmFsbHkgZm91bmRlZCB3aXRoIGFudGktTWFuY2h1IGlkZWFscywgbGF0ZXIgb2Z0ZW4gaW52b2x2ZWQgaW4gc211Z2dsaW5nLCBnYW1ibGluZywgYW5kIHByb3RlY3Rpb24gcmFja2V0cy5Ib25nbWVuICjmtKrploApIE9yaWdpbmFsbHkgZW1lcmdpbmcgZnJvbSB0aGUgcmVzaXN0YW5jZSBhZ2FpbnN0IHRoZSBRaW5nIGR5bmFzdHksPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwYjZlMjYzMC0wNDMwLTRmNmItOWQ3OC05OTIzY2FlMGQ5Mjd4d4ACPHA+4oCiIDxzdHJvbmc+VGhlIEhvbmdtZW48L3N0cm9uZz4gPHN0cm9uZz4o5rSq6ZaAKTwvc3Ryb25nPiByZXRhaW5lZCBhIHJldm9sdXRpb25hcnkgYXVyYS4gSW4gdGhlIGxhdGUgUWluZyBwZXJpb2QsIHRoZXkgd2VyZSBwYXJ0bHkgaW50ZWdyYXRlZCBpbnRvIHBvcnQgYW5kIHRyYW5zcG9ydCB3b3JrIGluIHNvdXRoZXJuIGFuZCBlYXN0ZXJuIENoaW5hLCBhbmQgcGFydGx5IGludm9sdmVkIGluIHNtdWdnbGluZyBhbmQgZ2FtYmxpbmcuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhNDNkZjVlOS03MWI3LTRlNzMtODZmNS0yYTk3YmY1ZmU3MzN4d7sDPHA+4oCiIDxzdHJvbmc+R3JlZW4gR2FuZyAo6Z2S5bmrKTwvc3Ryb25nPiBPcmlnaW5hbGx5IGZvcm1lZCBmcm9tIGJvYXQgY3Jld3Mgb24gdGhlIEltcGVyaWFsIENhbmFsLCBpdCBiZWNhbWUgYSBwb3dlcmZ1bCBmb3JjZSBpbiBTaGFuZ2hhaSwgY29vcGVyYXRpbmcgd2l0aCBib3RoIHRoZSBLdW9taW50YW5nIChLTVQpIGFuZCB0aGUgZm9yZWlnbiBjb25jZXNzaW9uIHBvbGljZS4gSXQgY29udHJvbGxlZCB0aGUgb3BpdW0gdHJhZGUsIGdhbWJsaW5nLCBhbmQgcHJvdGVjdGlvbiBtb25leeKAlGFuZCBhbHNvIGVtcGxveWVkIG1hcnRpYWwgYXJ0cyBleHBlcnRzIHRvIGVuZm9yY2UgaXRzIGNvbnRyb2wuIFRoZWlyIGluZmx1ZW5jZSBleHRlbmRlZCBiZXlvbmQgdHJhZGUgcm91dGVzIHRvIFRpYW5qaW4sIGNvbm5lY3RpbmcgdGhlIG5vcnRoIHdpdGggdGhlIHNvdXRoLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMGJlYmFiZDEtZGYwMC00ZTU1LTg2NjctYWFjYWNhMGYxNjNheHf1ATxwPlRoZXNlIG9yZ2FuaXphdGlvbnMgaGFkIHRoZWlyIG93biByaXR1YWxzLCBpZGVudGlmeWluZyBtYXJrcywgYW5kIGluaXRpYXRpb24gcml0ZXMsIGFuZCB0aGV5IG9mdGVuIG92ZXJsYXBwZWQgd2l0aCBtYXJ0aWFsIGFydHMgc2Nob29scyDigJMgZWl0aGVyIGJlY2F1c2UgdGhlIG1hc3RlcnMgdGhlbXNlbHZlcyB3ZXJlIG1lbWJlcnMgb3IgYmVjYXVzZSB0aGVpciBzdHVkZW50cyB3ZXJlIHJlY3J1aXRlZCB0aGVyZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDk2MDhmOGYxLTYxMWItNDhhMS1iYjdhLTZiNjZmMDdjNDZiYnh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDdhYjNmMzA0LWRmM2ItNDJhZS1iZmM4LTM5NGUyMTZlNDcyZnh3gwM8cD5TZWN0cyB3aXRoIERhb2lzdCBvciBCdWRkaGlzdCBpbmZsdWVuY2VzIG9mZmVyZWQgbm90IG9ubHkgc3Bpcml0dWFsIGd1aWRhbmNlIGJ1dCBhbHNvIGEgc29jaWFsIHNhZmV0eSBuZXQuIFRlbXBsZXMgc2VydmVkIGFzIG1lZXRpbmcgcGxhY2VzIHdoZXJlIHBlb3BsZSBjb3VsZCBkaXNjdXNzIG1hdHRlcnMsIHRyYWluLCBvciBhcnJhbmdlIGFzc2lnbm1lbnRzLiBTb21lIG9mIHRoZXNlIGdyb3VwcyBtaXhlZCByZWxpZ2lvdXMgdGVhY2hpbmdzIHdpdGggbWlsaXRhbnQgc3RydWN0dXJlcywgc3VjaCBhcyB0aGUgPHN0cm9uZz7igJxXaGl0ZSBMb3R1cyBNb3ZlbWVudCzigJ08L3N0cm9uZz4gd2hpY2ggd2FzIHJlcGVhdGVkbHkgaW52b2x2ZWQgaW4gdXByaXNpbmdzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMWI3ZDI0OWItZjQ2YS00NzNiLWIxNjAtMWNmYTU5OGQzNDhieHepATxwPkZvciBtYW55IGZpZ2h0ZXJzLCBiZWxvbmdpbmcgdG8gYSBzZWN0IHdhcyBub3QgaW5jb21wYXRpYmxlIHdpdGggdGhlaXIgd29yayBhcyB5YW1lbiBydW5uZXJzIG9yIGVzY29ydCBsZWFkZXJzIOKAkyBpdCB3YXMgYW4gYWRkaXRpb25hbCBib25kIHRoYXQgZW5zdXJlZCBsb3lhbHR5LjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZjYyMjM3MDUtM2I5Mi00NjUyLWE3NWYtN2Q1ZTgzZDg2Y2IxeHeMAzxwPkRhb2lzdCBzZWN0cyBzdWNoIGFzIHRoZSA8c3Ryb25nPkxvbmdtZW4gKERyYWdvbiBHYXRlKTwvc3Ryb25nPiBTY2hvb2wgcGxheWVkIGEgcGFydGljdWxhcmx5IGltcG9ydGFudCByb2xlLiBUaGVpciB0ZW1wbGVzIGFuZCBtb25hc3RlcmllcyB3ZXJlIHNhZmUgaGF2ZW5zIGZvciB0cmF2ZWxlcnMsIG1lcmNoYW50cywgYW5kIHdhcnJpb3JzLiBBbnlvbmUgaW4gU2hlbiBDb3VudHkgd2hvIGJlbG9uZ2VkIHRvIHN1Y2ggYSBjaXJjbGUgY291bGQgcmVseSBvbiB0aGUgc2FtZSBzeW1ib2xzLCByaXR1YWxzLCBhbmQgY29kZXMgaW4gU2hhbmdoYWnigJRhbmQgdGh1cyBnYWluIGFjY2VzcyB0byBjbG9zZWQgY2lyY2xlcyBldmVuIHdpdGhvdXQgYSBmb3JtYWwgcmVjb21tZW5kYXRpb24uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwMDhhNTc5YS1kZGE1LTQzNmEtYTY4Ni1mM2M5MzY0MThiYjF4dy88cD5UZW1wbGVzIGFzIG1lZXRpbmcgcGxhY2VzIGluIHVyYmFuIGFyZWFzPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ5MGQzZjdmNS1kYzc1LTQ0ZDItYWQxZS0zNDU2ZmU0OGM5Yzh4d9ABPHA+SGlzdG9yaWNhbCBzdHVkaWVzIHNob3cgdGhhdCBpbiB0aGUgbGF0ZSBRaW5nIHBlcmlvZCBhbmQgZHVyaW5nIHRoZSBSZXB1YmxpYyBlcmEsIHNtYWxsZXIgRGFvaXN0IGFuZCBCdWRkaGlzdCB0ZW1wbGVzIHdlcmUgdXNlZCBmb3IgbXVsdGlwbGUgcHVycG9zZXMsIGVzcGVjaWFsbHkgaW4gY2l0aWVzIHN1Y2ggYXMgU2hhbmdoYWkgYW5kIFRpYW5qaW46PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxNjZjYjQ3Zi1lZTJjLTRlZjMtOWNiZC01OWM0OGJlNDQ2ZjV4dy48cD7igKIgYXMgcGxhY2VzIG9mIHByYXllciBhbmQgcGlsZ3JpbWFnZSw8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDY3Y2FhNjZkLTY4NzgtNGU2ZS05ZjhlLTUxNTI1YjA1OTYwN3h3LjxwPuKAoiBhcyBtZWV0aW5nIHBsYWNlcyBmb3IgbG9jYWwgZ3VpbGRzLDwvcD53DmNvcmUvcGFyYWdyYXBoeXckOWZlYzc2ZWMtNmY0NC00Yzg5LTkzNGMtZGFmNTcyODdlOTk3eHdWPHA+4oCiIGFzIGRpc2NyZWV0IG1lZXRpbmcgcGxhY2VzIGZvciBhY3RvcnMgd2hvIGRpZCBub3Qgd2FudCB0byBhcHBlYXIgaW4gcHVibGljLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYzk2MTNjYjItNGFkMC00ZDE3LTk5MDItMDVjMjEwYjMwMmFjeHeXAjxwPkJyaWFuIEcuIE1hcnRpbiAoVGhlIFNoYW5naGFpIEdyZWVuIEdhbmc6IFBvbGl0aWNzIGFuZCBPcmdhbml6ZWQgQ3JpbWUsIDE5MTnigJMxOTM3LCAxOTk2KSBkb2N1bWVudHMgdGhhdCB0aGUgR3JlZW4gR2FuZyB1c2VkIHRlbXBsZXMgaW4gU2hhbmdoYWkncyBpbnRlcm5hdGlvbmFsIGNvbmNlc3Npb25zIHRvIGhvbGQgbWVldGluZ3Mgd2hlcmUgS01UIG9mZmljaWFscywgdW5pb24gbGVhZGVycywgYW5kIHVuZGVyd29ybGQgcmVwcmVzZW50YXRpdmVzIGNhbWUgdG9nZXRoZXIuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRlNTBhNWFlYS1hMmRjLTQ0ZTktOWJiYi1kOWIwMTMzMjQ3YTN4d4ACPHA+RnJlZGVyaWMgV2FrZW1hbiBKci4gKFBvbGljaW5nIFNoYW5naGFpIDE5MjfigJMxOTM3LCAxOTk1KSBkZXNjcmliZXMgaG93IHRoZSBGcmVuY2ggYW5kIGludGVybmF0aW9uYWwgY29uY2Vzc2lvbiBwb2xpY2Ugd2VyZSByZWx1Y3RhbnQgdG8gZW50ZXIgc3VjaCByZWxpZ2lvdXMgc2l0ZXMg4oCTIGEgcmVsdWN0YW5jZSB0aGF0IG1hZGUgdGhlc2UgcGxhY2VzIGF0dHJhY3RpdmUgdmVudWVzIGZvciBjb25maWRlbnRpYWwgbWVldGluZ3MuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxM2FhZDFlNi03ODRlLTQ2YjUtYmMzYi0wY2Y0YzZjYzViZmN4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRmZTYzMGY2NS0zYmY4LTRhYzItYTUzNi1hMGRhM2I1YTYzZTR4d188cD5DZXJ0YWluIGNyaW1pbmFsIGFjdGl2aXRpZXMgYmVuZWZpdGVkIGRpcmVjdGx5IGZyb20gdGhlIHNraWxscyBvZiBtYXJ0aWFsIGFydHMgbmV0d29ya3M6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxOGM1ZjE4Ny0zMjNmLTQ4YWItODNiOS03MWZlZTM3OTBhYjF4d1M8cD7igKIgU211Z2dsaW5nIOKAkyBmaWdodGVycyBrbmV3IHRoZSBoaWRkZW4gcm91dGVzIGFuZCBjb3VsZCBwcm90ZWN0IGNvbnZveXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQzNGJmZjY2Mi0wZDUyLTRhOTctYTBiOC01MmU3YjBhYjgzYjN4d2w8cD7igKIgR2FtYmxpbmcgYW5kIG9waXVtIGRlbnMg4oCTIG1hcnRpYWwgYXJ0cyBwcmFjdGl0aW9uZXJzIG9mdGVuIGFjdGVkIGFzIGJvdW5jZXJzIG9yIGVuZm9yY2VycyBoZXJlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMzVkMjRkYWMtMWQ4Zi00ZDdmLWFlYzktOTQ2ZTA2NWQ3MDY4eHeNATxwPuKAoiBFeHRvcnRpb24g4oCTIOKAnHByb3RlY3Rpb27igJ0gYWdhaW5zdCBnYW5ncyB3YXMgYSBsdWNyYXRpdmUgYnVzaW5lc3MsIGFuZCBtYXJ0aWFsIGFydGlzdHMgbWFkZSB0aGUgdGhyZWF0cyBwYXJ0aWN1bGFybHkgY3JlZGlibGUuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRlOGRiMmJhZS01ZGMzLTQ3NTktYmQwNS02NGY5YjUxZjIwYmR4dyI8ZGl2IGNsYXNzPSJ3cC1ibG9jay1ncm91cCI+PC9kaXY+dwpjb3JlL2dyb3VwdwNkaXZ2AgR0eXBldwRmbGV4CGZsZXhXcmFwdwZub3dyYXB3JGVhOWZiZjY1LTgzYjktNGNiZC1hODdkLWFkYzRkZGYyNDQyY3h3kQE8cD5UaGUgY2xvc2UgY29ubmVjdGlvbiB0byB0aGUgdW5kZXJ3b3JsZCBtZWFudCB0aGF0IHRoZSBzYW1lIG1lbiB3aG8gZXNjb3J0ZWQgZ29vZHMgZHVyaW5nIHRoZSBkYXkgc3Rvb2QgZ3VhcmQgaW4gYSBnYW1ibGluZyBob3VzZSBhdCBuaWdodC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGIyZjdiMjA5LTM2YjEtNGMwYi1iNjU4LTFjYjVjN2MxNGQ2YXh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDc0MmZhODc3LWNlNzItNGQwYy04MjAyLWFlOWJlZjJjYWNmMHh3JDxkaXYgY2xhc3M9IndwLWJsb2NrLWdyb3VwIj4KCjwvZGl2PncKY29yZS9ncm91cHcDZGl2dgIEdHlwZXcEZmxleAhmbGV4V3JhcHcGbm93cmFwdyRlN2E1ODFlOS05OWFlLTRmYTMtYmY3ZS1lNTc0YmU0ZjkyMjR4d+EDPHA+Tm90IGFsbCBuZXR3b3JrcyBvcGVyYXRlZCBzb2xlbHkgZm9yIHByb2ZpdC4gU29tZSBzZWNyZXQgc29jaWV0aWVzIGN1bHRpdmF0ZWQgaWRlb2xvZ2ljYWwgbmFycmF0aXZlcyDigJMgc3VjaCBhcyB0aGUgcmV0dXJuIG9mIHRoZSBNaW5nIGR5bmFzdHkgb3IgdGhlIGZpZ2h0IGFnYWluc3QgZm9yZWlnbiBwb3dlcnMuIFRoZXNlIGlkZWFzIHByb3ZpZGVkIGEgbW9yYWwganVzdGlmaWNhdGlvbiBmb3IgdmlvbGVuY2UgYW5kIGhlbHBlZCB0byBiaW5kIG1lbWJlcnMgdG9nZXRoZXIuIEluIHByYWN0aWNlLCB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIGlkZW9sb2d5IGFuZCBidXNpbmVzcyBxdWlja2x5IGJlY2FtZSBibHVycmVkOiBhIOKAnHBhdHJpb3TigJ0gY291bGQgbGVhZCBhbiBhbnRpLWZvcmVpZ24gZGVtb25zdHJhdGlvbiBpbiB0aGUgbW9ybmluZyBhbmQgc2VjdXJlIGEgc211Z2dsaW5nIHJvdXRlIGluIHRoZSBhZnRlcm5vb24uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0MjJlMDNlYy01M2ViLTRhNDgtYTJkYy0yZTkwYjc3Y2IzNmR4d8ABPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1tZWRpdW0iPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L0MzRDA1NTQ3LUZFNjQtNDBERC1BOTQ3LTM4QkQ3MzQxQjlDNS0yMDB4MzAwLnBuZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS0xMTEwIi8+PC9maWd1cmU+dwpjb3JlL2ltYWdld2JodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L0MzRDA1NTQ3LUZFNjQtNDBERC1BOTQ3LTM4QkQ3MzQxQjlDNS0yMDB4MzAwLnBuZ3cAfZYRdwZtZWRpdW13BG5vbmV3JDlkZWE4MjkxLTc1ZTEtNDQ2OC1hZjdkLWY4MmQ0OWNjMDExZnh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDFmYmE0M2VhLTAzYzgtNDRlNy1hOWEyLTlmZDhmMjY0M2ZhM3h3VzxwPlRoZSBjb25uZWN0aW9uIGJldHdlZW4gbWFydGlhbCBhcnRzIG5ldHdvcmtzIGFuZCBzZWNyZXQgc29jaWV0aWVzIHdhcyBzeW1iaW90aWM6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRjODA5MjhlYS0wMWU4LTRkMDAtYWE3Zi0xMWVjMWQxODg3OGN4d0w8cD7igKIgVGhlIGZpZ2h0ZXJzIG9mZmVyZWQgcGh5c2ljYWwgcG93ZXIsIGRpc2NpcGxpbmUsIGFuZCBsb2NhbCByb290cy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDMyOTFhOGRmLWNlYjEtNGIwMS04YTNlLWUzN2U5YzhjYmY5Mnh3ezxwPuKAoiBUaGUgc2VjcmV0IHNvY2lldGllcyBvZmZlcmVkIHByb3RlY3Rpb24gZnJvbSBzdGF0ZSBwZXJzZWN1dGlvbiwgYWNjZXNzIHRvIHJlc291cmNlcywgYW5kIHN1cHJhcmVnaW9uYWwgY29udGFjdHMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhZDg0YWM3OC03Y2IxLTQxMmYtYmQyNC1jZTM3YjY3OGVkNzB4d3w8cD5BbiBleHBlcmllbmNlZCBtYXN0ZXIgY291bGQgdGh1cyBlbmpveSBhc3NpZ25tZW50cyBhbmQgcHJvdGVjdGlvbiBub3Qgb25seSB3aXRoaW4gaGlzIGNpdHksIGJ1dCBpbiBzZXZlcmFsIHByb3ZpbmNlcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDgxOWRhYmVmLTFhYzctNDZkZi05MGQ1LTM5NTEzYzNmMzZiMnh3gwM8cD5UaGUgYmVnaW5uaW5nIG9mIHRoZSAyMHRoIGNlbnR1cnkgd2FzIGEgdGltZSBvZiBwcm9mb3VuZCBjaGFuZ2UgZm9yIHRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2Ygbm9ydGhlcm4gQ2hpbmEuIFRoZSBwb2xpdGljYWwgdXBoZWF2YWxzIG9mIHRob3NlIHllYXJzIOKAkyBmcm9tIHRoZSBCb3hlciBSZWJlbGxpb24gdG8gdGhlIGZhbGwgb2YgdGhlIFFpbmcgRHluYXN0eSBhbmQgdGhlIFdhcmxvcmQgRXJhIOKAkyBicm91Z2h0IG5ldyBvcHBvcnR1bml0aWVzLCBidXQgYWxzbyByaXNrcy4gTWFueSBvZiB0aGUgb2xkIHN0cnVjdHVyZXMgc3Vydml2ZWQsIGJ1dCB0aGVpciBmdW5jdGlvbnMgYW5kIHB1YmxpYyBwZXJjZXB0aW9uIGNoYW5nZWQgZHJhbWF0aWNhbGx5LjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZjBkYjViYzUtMzM5YS00ZmQzLWFlZDctYjAxM2Y4NzJhMWMzeHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckZjAzYTc4YWMtMmRiNy00OGJjLWJhOWItNmM0MmU3MTJkYWU0eHeAAjxwPlRoZSBzby1jYWxsZWQg4oCcWWloZXR1YW7igJ0gdXByaXNpbmcgd2FzIGEga2V5IG1vbWVudCBpbiB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIG1hcnRpYWwgYXJ0cywgcmVsaWdpb24sIGFuZCBwb2xpdGljcy4gVGhlIEJveGVyIG1vdmVtZW50IG1peGVkIGxvY2FsIG1hcnRpYWwgYXJ0cyBncm91cHMgd2l0aCBzcGlyaXR1YWxpc3QgcHJhY3RpY2VzIGFuZCBhIHN0cm9uZ2x5IGFudGktZm9yZWlnbiwgYW50aS1DaHJpc3RpYW4gYWdlbmRhLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZGYyMWU1YjUtNTE1Yi00ZjBlLWFhNTEtYzYzZDVmNzViZGZieHeoAzxwPk1hbnkgbWFydGlhbCBhcnRzIG5ldHdvcmtzIHN5bXBhdGhpemVkIHdpdGggdGhlIEJveGVycywgc29tZSBwcm92aWRpbmcgZmlnaHRlcnMgb3IgbG9naXN0aWNhbCBrbm93bGVkZ2UuIEhvd2V2ZXIsIHRoZSBicnV0YWwgc3VwcHJlc3Npb24gb2YgdGhlIHVwcmlzaW5nIGJ5IHRoZSBjb21iaW5lZCBmb3JjZXMgb2YgdGhlIOKAnEVpZ2h0LU5hdGlvbiBBbGxpYW5jZeKAnSBkZXN0cm95ZWQgbWFueSBvZiB0aGVzZSBzdHJ1Y3R1cmVzLiBJbiB0aGUgeWVhcnMgdGhhdCBmb2xsb3dlZCwgbWFueSBmaWdodGVycyB3ZXJlIHVuZGVyIGluY3JlYXNlZCBzY3J1dGlueSwgYW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gbWFydGlhbCBhcnRzIGFuZCBwb2xpdGljYWwgYWdpdGF0aW9uIGJlY2FtZSBsaWZlLXRocmVhdGVuaW5nIGZvciBzb21lLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZmE0ZDY1MjUtNGI0Mi00ZTIwLTk2YTAtZTk1NzNhMTUzOTlheHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckYjlmODY3M2UtODNmZC00NTZiLThlMWUtNjk3NGJiZGEzYzVkeHeNAzxwPlRoZSBYaW5oYWkgUmV2b2x1dGlvbiBicm91Z2h0IGFuIGVuZCB0byB0aGUgUWluZyBkeW5hc3R5IOKAkyBidXQgbm90IHRvIHRoZSBzdHJ1Y3R1cmVzIG9mIHZpb2xlbmNlLiBPbiB0aGUgY29udHJhcnk6IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2QsIG1hbnkgZmlnaHRlcnMgdG9vayBhZHZhbnRhZ2Ugb2YgdGhlIHBvd2VyIHZhY3V1bSB0byBzdHJlbmd0aGVuIHRoZWlyIHBvc2l0aW9uLiBTb21lIGpvaW5lZCByZXZvbHV0aW9uYXJ5IG1pbGl0aWFzLCBvdGhlcnMgb2ZmZXJlZCB0aGVpciBzZXJ2aWNlcyB0byB0aGUgbmV3IHByb3ZpbmNpYWwgZ292ZXJubWVudHMsIGFuZCBzdGlsbCBvdGhlcnMgc291Z2h0IHByb3RlY3Rpb24gZnJvbSBwb3dlcmZ1bCBsb2NhbCBsZWFkZXJzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYjhjYjI4YzktOTNiMC00NmFmLWIyZjItM2Y2ZGI0ZDNjYWEweHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckZjJhNzExNjQtN2UxNC00ZTg4LTkwNWEtMmI4ZjljODJkMjMyeHe8AjxwPlRoZSBwb2xpdGljYWwgZnJhZ21lbnRhdGlvbiBmb2xsb3dpbmcgdGhlIGRlYXRoIG9mIFl1YW4gU2hpa2FpIGxlZCB0byB0aGUgcnVsZSBvZiByZWdpb25hbCBtaWxpdGFyeSBsZWFkZXJzICh3YXJsb3JkcykuIFRoZXNlIG1lbiBvZnRlbiBydWxlZCB0aGVpciB0ZXJyaXRvcmllcyBsaWtlIHByaXZhdGUgcHJpbmNlcyDigJMgYW5kIHRoZXkgaGFkIGEgZ3JlYXQgbmVlZCBmb3IgbG95YWwsIGJhdHRsZS1oYXJkZW5lZCBtZW4uIE1hcnRpYWwgYXJ0cyBuZXR3b3JrcyBvZmZlcmVkIGFuIGlkZWFsIHJlY3J1aXRpbmcgZ3JvdW5kIGZvciB0aGlzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZDc2YWE2MGYtYTkzMS00OTE4LTkyNGItNWYyMzExZTc1NzhieHfyATxwPkR1cmluZyB0aGlzIHBlcmlvZCwgc29tZSBtYXJ0aWFsIGFydHMgbWFzdGVycyByb3NlIHRvIGJlY29tZSBtaWxpdGFyeSBpbnN0cnVjdG9ycyBvciBldmVuIG9mZmljZXJzLiBUaG9zZSB3aG8gd2VyZSBza2lsbGVkIGNvdWxkIGdhaW4gZ3JlYXQgaW5mbHVlbmNlIOKAkyB0aG9zZSB3aG8gd2VyZSB1bmx1Y2t5IHdlcmUgZHJhd24gaW50byBlbmRsZXNzIHNraXJtaXNoZXMgYmV0d2VlbiByaXZhbCB3YXJsb3Jkcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDY2MTBlOGIyLTEzNmUtNDJmNS1iNWIzLTM3ZjIzYzNmOGRkMXh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JGVlOGY1MjBmLWMwMzEtNGZmNy05N2YzLWE0ZjBmMmRhMjU4Y3h3oAI8cD5QYXJhbGxlbCB0byB0aGlzIG1pbGl0YXJpemF0aW9uLCBhIGNvdW50ZXJ0cmVuZCBiZWdhbjogdGhlIGluc3RpdHV0aW9uYWxpemF0aW9uIGFuZCBzcG9ydGlmaWNhdGlvbiBvZiBtYXJ0aWFsIGFydHMuIFN0YXJ0aW5nIGluIHRoZSAxOTEwcywgcHVibGljIG1hcnRpYWwgYXJ0cyBzY2hvb2xzIGFuZCBhc3NvY2lhdGlvbnMgZW1lcmdlZCB0aGF0IGZvY3VzZWQgbGVzcyBvbiB0aGUgdXNlIG9mIHZpb2xlbmNlIGFuZCBtb3JlIG9uIHBoeXNpY2FsIGN1bHR1cmUgYW5kIG5hdGlvbmFsIHByaWRlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMGM0MzE3NjEtM2I3Yi00NzUwLWJkNDctNTZjMDdhNzBmNDlheHc3PHA+VGhlcmUgd2VyZSBzZXZlcmFsIHJlYXNvbnMgZm9yIHRoaXMgZGV2ZWxvcG1lbnQ6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ1MTc3ODUwOS00YzhjLTQ4NjctODA5Ny1hZDI5ZDk1ZWNkMWN4d2U8cD7igKIgVGhlIG5ldyByZXB1YmxpY2FuIGdvdmVybm1lbnQgd2FudGVkIHRvIGNoYW5uZWwgY29tYmF0aXZlIGVuZXJneSBpbnRvIGNvbnRyb2xsZWQgY2hhbm5lbHMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmNmVjYzJhZi03ZTI4LTQzM2EtOWFjZS0zMjU2ZTM0MjBlOTR4d1M8cD7igKIgRm9yZWlnbiBzcG9ydHMgc3VjaCBhcyBib3hpbmcgYW5kIGp1ZG8gaW5zcGlyZWQgbW9kZXJuIHRyYWluaW5nIG1ldGhvZHMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkZTUzNGJiMC02ZmQ3LTQyM2UtYWU5MS1lMjg2NjUzYzAwMzJ4d1k8cD7igKIgTWFydGlhbCBhcnRzIHdlcmUgcHJvbW90ZWQgYXMgYSBtZWFucyBvZiDigJxwaHlzaWNhbCByZW5ld2FsIG9mIHRoZSBuYXRpb24u4oCdPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ3ZjY1YTg5OS04YmYyLTQzODctODM4NC0wZmE4YmEwOGFiMmF4d7MBPHA+Rm9yIHNvbWUgb2xkIG5ldHdvcmtzLCB0aGlzIG1lYW50IHRoZSBsb3NzIG9mIHRoZWlyIG9yaWdpbmFsIGZ1bmN0aW9u4oCUZm9yIG90aGVycywgaXQgd2FzIGFuIG9wcG9ydHVuaXR5IHRvIGNhbW91ZmxhZ2UgdGhlaXIgaW5mbHVlbmNlIGFuZCBiZWNvbWUgbW9yZSBwdWJsaWNseSBhY2NlcHRhYmxlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYmE5M2U2YjItMDRmMi00NGE0LTk1NGYtZjcxY2Q4YmJiMjc4eHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckNDgwZWVlYjAtMTYyZi00MzBlLTgxMWMtM2VkYjQzNGQwYjZheHf\/ATxwPlRoZSBuZXR3b3JrcyB0aGF0IHN1cnZpdmVkIHRoZXNlIHVwaGVhdmFscyBoYWQgb25lIHRoaW5nIGluIGNvbW1vbjogYWRhcHRhYmlsaXR5LiBUaGV5IHdlcmUgYWJsZSB0byB0cmFuc2Zvcm0gdGhlbXNlbHZlcyBmcm9tIGFybWVkIGVzY29ydHMgdG8gc3BvcnRzIHRlYWNoZXJzLCBmcm9tIHVuZGVyd29ybGQgZmlndXJlcyB0byDigJxwYXRyaW90c+KAnSBpbiB0aGUgc2VydmljZSBvZiBhIHdhcmxvcmQg4oCTIG9yIHZpY2UgdmVyc2EuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkMTMxOGZiZS1lOWRiLTQ2NTYtYTIzZi1iY2ZlNjIwNTY0MmF4dyM8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwVsYXJnZXckNWJjOTIwNWItYjU5My00Y2IyLWI4MjctNDQyM2Q2NTM5YWM3eHfFAjxwPlRoZSB0aHJlZSBuYW1lcyBEb25nIEhhaWNodWFuLCBaaGFuZyBaaGFvZG9uZywgYW5kIFdhbmcgWGlhbmd6aGFpIHJlcHJlc2VudCBkaWZmZXJlbnQgZ2VuZXJhdGlvbnMgYW5kIHJvbGVzIHdpdGhpbiB0aGUgbm9ydGhlcm4gQ2hpbmVzZSBtYXJ0aWFsIGFydHMgc2NlbmUgYmV0d2VlbiB0aGUgbGF0ZSAxOXRoIGFuZCBlYXJseSAyMHRoIGNlbnR1cmllcy4gVGhleSBleGVtcGxpZnkgaG93IG1hc3RlcnMgZnJvbSB0aGVzZSBuZXR3b3JrcyBvcGVyYXRlZCwgZm9yZ2VkIHJlbGF0aW9uc2hpcHMsIGFuZCBleGVydGVkIGluZmx1ZW5jZSBvbiB0aGVpciB0aW1lLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckY2FhYWExMzYtNzgzMy00MzlkLThmYmEtNTE3YTQ1ZjllYzc4eHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckZjYxMWZhYmMtOWJlYS00ODVjLTgwNWItYWY1OTk3Yzc5ZjRjeHekAjxwPkRvbmcgSGFpY2h1YW4sIHdpZGVseSBrbm93biBhcyB0aGUgZm91bmRlciBvZiBCYWd1YXpoYW5nLCBncmV3IHVwIGluIEhlYmVpIGFuZCBjYW1lIGludG8gY29udGFjdCB3aXRoIHZhcmlvdXMgbG9jYWwgbWFydGlhbCBhcnRzIGF0IGFuIGVhcmx5IGFnZS4gQSByZWN1cnJpbmcgdGhlbWUgaW4gdGhlIHRyYWRpdGlvbnMgaXMgaGlzIHdvcmsgYXMgYSB0YXggY29sbGVjdG9yIG9yIG9mZmljaWFsLCBpbiBzb21lIHNvdXJjZXMgZXhwbGljaXRseSBvbiBiZWhhbGYgb2YgdGhlIGltcGVyaWFsIGNvdXJ0LjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOGQ3MzZlOWQtOGEwNy00ZmZjLThhZjQtMzcwYTYwMDY0ZDYyeHe\/AjxwPlRoaXMgcG9zaXRpb24gYnJvdWdodCBoaW0gaW50byBkaXJlY3QgY29udGFjdCB3aXRoIGxvY2FsIGVsaXRlcywgYnV0IGFsc28gd2l0aCBtaWxpdGFudCB2aWxsYWdlIG1pbGl0aWFzIGFuZCBhcm1lZCBlc2NvcnQgc2VydmljZXMuIEFueW9uZSB3aG8gd2FudGVkIHRvIGNvbGxlY3QgdGF4ZXMgbm90IG9ubHkgaGFkIHRvIGJlIGFibGUgdG8gZmlnaHQsIGJ1dCBhbHNvIGhhZCB0byBuYXZpZ2F0ZSB0aGUgY29tcGxleCB3ZWIgb2Ygb2ZmaWNpYWxzLCB2aWxsYWdlIGVsZGVycywgbWVyY2hhbnRzLCBhbmQgdW5vZmZpY2lhbCBwb3dlciBmaWd1cmVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNTYyZGMzZGItNmY5Ni00MzNjLWJmM2UtNjQ4OTUzMGVmMTAzeHeDAzxwPkRvbmcgYXBwYXJlbnRseSBtYWRlIGNsZXZlciB1c2Ugb2YgdGhlc2UgY29udGFjdHM6IHdoZW4gaGUgbGF0ZXIgY2FtZSB0byBCZWlqaW5nLCBoZSBnYWluZWQgYWNjZXNzIHRvIGhpZ2gtcmFua2luZyBjaXJjbGVzLCBpbmNsdWRpbmcgdGhlIGhvdXNlaG9sZCBvZiBQcmluY2UgU3UuIEhlcmUsIGhpcyByZXB1dGF0aW9uIGFzIGEgZmlnaHRlciB3YXMgY29tYmluZWQgd2l0aCB0aGUgcm9sZSBvZiB0cmFpbmVyIGZvciBlbGl0ZSBzZWN1cml0eSBmb3JjZXMg4oCTIGEgcG9zaXRpb24gdGhhdCBjb3VsZCBvbmx5IGJlIGhlbGQgYnkgc29tZW9uZSB3aG8gZW5qb3llZCB0aGUgdHJ1c3Qgb2YgYm90aCB0aGUgYWRtaW5pc3RyYXRpb24gYW5kIG1pbGl0YXJ5IGNpcmNsZXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ2ODRlZWU2Yy02NjAyLTRmYjUtOTgzZC00NmE4ZjQ4OWYyNDV4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRlZDY1MDZlMC04NzViLTRlNWMtODUxYS1hMGI0MDZlOGRiYTh4d5UCPHA+WmhhbmcgWmhhb2RvbmcgZnJvbSBUaWFuamluLCBtYXN0ZXIgb2YgWGluZ3lpcXVhbiBhbmQgQmFndWF6aGFuZywgcmVwcmVzZW50cyB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIFlhbWVuIHdvcmsgYW5kIHRoZSBzZW1pLXByaXZhdGUgZWNvbm9teSBvZiB2aW9sZW5jZS4gQmVzaWRlcyBoaXMgY2FyZWVyIGFzIGEgbWFydGlhbCBhcnRzIHRlYWNoZXIsIGhlIHJlcG9ydGVkbHkgd29ya2VkIGFzIGEga2luZCBvZiBib3VudHkgaHVudGVyIG9uIGJlaGFsZiBvZiB0aGUgWWFtZW4uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyM2M1NDJjNS05MDhjLTRjYTAtODlmZi1mNjZmYWVjYzg1MmF4d4gCPHA+VGhpcyBhY3Rpdml0eSBpbnZvbHZlZCB0cmFja2luZyBkb3duIGZ1Z2l0aXZlIGNyaW1pbmFscywgY29sbGVjdGluZyBkZWxpbnF1ZW50IGRlYnRzLCBhbmQgdGFraW5nIG9uIGRlbGljYXRlIGFzc2lnbm1lbnRzIHRoYXQgcmVxdWlyZWQgcGh5c2ljYWwgZW5mb3JjZW1lbnQuIEluIGRvaW5nIHNvLCBoZSBtb3ZlZCBpbiB0aGUgc2FtZSBjaXJjbGVzIGFzIGVzY29ydCBsZWFkZXJzLCBoYXJib3IgZ3VhcmRzLCBhbmQgdW5kZXJ3b3JsZCBjb250YWN0cy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDViNzViYTgwLWU1MjItNDhhZC05NjUyLWRlNzdiZDk3YzY0NXh37wI8cD5BdCB0aGF0IHRpbWUsIFRpYW5qaW4gd2FzIGEgaHViIGZvciB0cmFkZSwgZm9yZWlnbiBjb25jZXNzaW9ucywgYW5kIHNtdWdnbGluZyByb3V0ZXPigJRpZGVhbCBjb25kaXRpb25zIGZvciBzb21lb25lIGxpa2UgWmhhbmcsIHdobyBjb21iaW5lZCBtYXJ0aWFsIGFydHMgYW5kIG5ldHdvcmtpbmcuIEhpcyBzY2hvb2wgd2FzIG5vdCBvbmx5IGEgdHJhaW5pbmcgZ3JvdW5kIGJ1dCBhbHNvIGEgbWVldGluZyBwbGFjZSBmb3IgYnVzaW5lc3NwZW9wbGUsIG9mZmljaWFscywgYW5kIGZpZ2h0ZXJzLiBJbiB0aGlzIHdheSwgaGUgZXN0YWJsaXNoZWQgaGltc2VsZiBwZXJtYW5lbnRseSBpbiB0aGUgY2l0eSdzIHBvd2VyIGxhbmRzY2FwZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGRmZjJkNTgyLTVjNGEtNGEyOC05MThhLTFmOWU2NjhlOWMxM3h3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JGE0ODc4ZmMxLWFlOGQtNDgzYy1iMWEwLWQ4ZDBlNzlkYjVhNHh33gI8cD5XYW5nIFhpYW5nemhhaSwgbGF0ZXIgZm91bmRlciBvZiBZaXF1YW4sIGJlbG9uZ2VkIHRvIHRoZSBnZW5lcmF0aW9uIHRoYXQgZXhwZXJpZW5jZWQgdGhlIHRyYW5zaXRpb24gZnJvbSB0aGUgbGF0ZSBpbXBlcmlhbCBlY29ub215IG9mIHZpb2xlbmNlIHRvIHRoZSByZXB1YmxpY2FuIG1hcnRpYWwgYXJ0cyBjdWx0dXJlLiBIZSBncmV3IHVwIGluIEhlYmVpLCB0cmF2ZWxlZCBhY3Jvc3MgQ2hpbmEgYXMgYSB5b3VuZyBtYW4sIGFuZCBzb3VnaHQgb3V0IGV4Y2hhbmdlcyB3aXRoIHdlbGwta25vd24gbWFzdGVycywgaW5jbHVkaW5nIHZldGVyYW5zIGZyb20gdGhlIGVzY29ydCBhbmQgeWFtZW4gc2NlbmUuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkOGM0YjM1OS0zZDUzLTQwZWItOWEzNi1mMTRkMzE3ODExMTZ4d\/0CPHA+VGhlc2UgdHJhdmVscyBtYWRlIGhpbSBmYW1pbGlhciB3aXRoIHRoZSByZW1uYW50cyBvZiB0aGUgb2xkIG5ldHdvcmtzIGFzIHdlbGwgYXMgd2l0aCB0aGUgbmV3IHN0cnVjdHVyZXMgb2YgdGhlIHJlcHVibGljYW4gZXJhLCBpbiB3aGljaCBtYXJ0aWFsIGFydHMgd2VyZSBpbmNyZWFzaW5nbHkgZW1iZWRkZWQgaW4gbWlsaXRhcnkgdHJhaW5pbmcgYW5kIHB1YmxpYyBzcG9ydHMgY2x1YnMuIEhpcyBhYmlsaXR5IHRvIHRyYW5zbGF0ZSB0cmFkaXRpb25hbCB0ZWNobmlxdWVzIGludG8gYSBtb2Rlcm4gY29uY2VwdCBzaG93cyBob3cgdGhlIHNvY2lhbCBjYXBpdGFsIG9mIHRoZSBvbGQgbmV0d29ya3MgY291bGQgYmUgc2F2ZWQgaW50byB0aGUgbmV3IGVyYS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGFlZDM0MmZiLTVjOGEtNDgxMC1iYjBmLWUyNzNlZTBmZWZkY3h3gAI8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L1hpbmhhaV9SZXZvbHV0aW9uX2luX1NoYW5naGFpLmpwZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS0xMTE4Ii8+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+WGluaGFpIFJldm9sdXRpb24gKFdpa2lwZWRpYSk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+dwpjb3JlL2ltYWdld1NodHRwczovL2JhZ3VhLXpoYW5nLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA4L1hpbmhhaV9SZXZvbHV0aW9uX2luX1NoYW5naGFpLmpwZ3cAfZ4RdwRmdWxsdwRub25ldyQ0OGUyY2I1NS0wNTNiLTQ2YTItYmQ0Ny05OTQzNTU2NTU3YTF4dyM8cCBjbGFzcz0iaGFzLWxhcmdlLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwVsYXJnZXckNWJmZTdhNTEtMDg2Yy00MTRmLWI4MjgtM2FmYTM3NWNkMzcyeHeNAzxwPlRoZSBtYXJ0aWFsIGFydHMgbmV0d29ya3Mgb2Ygbm9ydGhlcm4gQ2hpbmEgaW4gdGhlIGxhdGUgMTl0aCBhbmQgZWFybHkgMjB0aCBjZW50dXJpZXMgd2VyZSBtb3JlIHRoYW4gbWVyZSBhc3NvY2lhdGlvbnMgb2YgZmlnaHRlcnMuIFRoZXkgd2VyZSBzb2NpYWwgaW5zdGl0dXRpb25zIHRoYXQgb3BlcmF0ZWQgaW4gYSBibHVycmVkIHNwYWNlIGJldHdlZW4gb2ZmaWNpYWwgYWRtaW5pc3RyYXRpb24sIGxvY2FsIHNlbGYtb3JnYW5pemF0aW9uLCBhbmQgY3JpbWluYWwgc3RydWN0dXJlcy4gVGhlaXIgbWVtYmVycyBtb3ZlZCBuYXR1cmFsbHkgYmV0d2VlbiB0aGVzZSBzcGhlcmVzIGFuZCB1c2VkIG1hcnRpYWwgYXJ0cyBhcyBib3RoIHBoeXNpY2FsIGFuZCBzeW1ib2xpYyBjYXBpdGFsLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMzgxZmM5YzctMjc5Ny00ZTQ1LWFhZDMtNGVlNTAyNjAxZDJleHckPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckOTNjMTRhMDktZjVhYy00ODc1LThjYjEtNjE4MjJhMzM3ZWJheHevAjxwPldoZXRoZXIgYXMgeWFtZW4gcnVubmVycywgZXNjb3J0IGxlYWRlcnMsIG1pbGl0aWFtZW4sIG9yIHRlYWNoZXJzLCB0aGUgbWVuIChhbmQsIGluIHJhcmVyIGNhc2VzLCB3b21lbikgaW4gdGhlc2UgbmV0d29ya3Mga25ldyBob3cgdG8gYXBwbHkgdGhlaXIgc2tpbGxzIGluIGRpZmZlcmVudCBjb250ZXh0cy4gVGhleSBjb3VsZCB3b3JrIGZvciBhIG1hZ2lzdHJhdGUgb25lIHllYXIsIGEgd2FybG9yZCB0aGUgbmV4dCwgYW5kIHNob3J0bHkgdGhlcmVhZnRlciBhcyBpbnN0cnVjdG9ycyBhdCBhIHNwb3J0cyBzY2hvb2wuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ3YTFkNDk2OC01NmM5LTRkMzEtYTdmYS1iMTZjNGExMThhMzR4d50BPHA+VGhpcyBmbGV4aWJpbGl0eSB3YXMgY3J1Y2lhbCB0byB0aGVpciBzdXJ2aXZhbCBhdCBhIHRpbWUgd2hlbiBwb2xpdGljYWwgb3JkZXJzIGNoYW5nZWQgcmFwaWRseSBhbmQgc3RhdGUgc3RydWN0dXJlcyBkaWQgbm90IGZ1bmN0aW9uIGFjcm9zcyB0aGUgYm9hcmQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQzZmExNWFiOS0zNGFjLTQyMGEtOTdiYi04OWE2ZDc5ODBmYTB4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQ3ZDEyMDkzMS04NzkzLTRkZTYtYmEyZS0zMzRiMjBkM2NmNDB4d6gCPHA+QSBrZXkgZWxlbWVudCBvZiB0aGVpciBzdWNjZXNzIGxheSBpbiB0aGVpciBhYmlsaXR5IHRvIGV4ZXJjaXNlIHBvd2VyIHdpdGhvdXQgcHJvdm9raW5nIGNvbXBsZXRlIHJlamVjdGlvbiBieSB0aGUgcG9wdWxhdGlvbiBvciB0aGUgc3RhdGUuIE1hbnkgb2ZmZXJlZCBnZW51aW5lIHByb3RlY3Rpb24sIG1lZGlhdGVkIGNvbmZsaWN0cywgb3IgZ3VhcmFudGVlZCBzYWZlIHRyYWRlIHJvdXRlc+KAlHNlcnZpY2VzIHRoYXQgd2VyZSBub3QgYWx3YXlzIHByb3ZpZGVkIGJ5IG9mZmljaWFsIGF1dGhvcml0aWVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOTU4MDJlOTAtY2I5OC00OWYyLTlkZWMtNWM1OWY0ZTg2NTg3eHfYATxwPkF0IHRoZSBzYW1lIHRpbWUsIHRoZSBsaW5lIGJldHdlZW4gZXh0b3J0aW9uLCBzbXVnZ2xpbmcsIGFuZCBwb2xpdGljYWxseSBtb3RpdmF0ZWQgdmlvbGVuY2Ugd2FzIG9mdGVuIGJsdXJyZWQuIFRoZXNlIGdyYXkgYXJlYXMgbWFkZSB0aGUgbmV0d29ya3MgYW4gaW5kaXNwZW5zYWJsZSBidXQgYWxzbyBhbWJpdmFsZW50IHBhcnQgb2YgdGhlIHNvY2lhbCBmYWJyaWMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmNDYzODVkOS1mYzljLTQ2ZDktOWNlYy1iMzE4MjhlYzQ4MzF4dyQ8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyQyOGM5ZTI5MS03NmRlLTRjNDktYjE2YS1kMDg5MThkMWRkODl4d4gCPHA+V2l0aCB0aGUgY29uc29saWRhdGlvbiBvZiB0aGUgUmVwdWJsaWMgb2YgQ2hpbmEgYW5kIGxhdGVyIHRoZSBQZW9wbGUncyBSZXB1YmxpYywgdGhlIG9sZCBzdHJ1Y3R1cmVzIHdlcmUgbGFyZ2VseSBkaXNzb2x2ZWQgb3IgdHJhbnNmZXJyZWQgdG8gc3RhdGUtY29udHJvbGxlZCBmb3Jtcy4gTWFydGlhbCBhcnRzIHdlcmUgaW5jcmVhc2luZ2x5IHByb21vdGVkIGFzIGEgc3BvcnQsIGhlYWx0aCBwcm9tb3Rpb24sIGFuZCBjdWx0dXJhbCBoZXJpdGFnZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDhhZDUwZGYwLTdmNjAtNGY5MC05ZDY5LTc0ZmIzNTAwZjM1M3h3PTxwPkhvd2V2ZXIsIHRyYWNlcyBvZiB0aGUgb2xkIG5ldHdvcmtzIGFyZSBzdGlsbCB2aXNpYmxlOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODM1ODRiMzktOTYxZC00NzI3LWE0Y2ItZWJhMjA5MjcwMmY1eHdiPHA+4oCiIEluIHRoZSBtYXN0ZXItc3R1ZGVudCByZWxhdGlvbnNoaXBzLCB3aGljaCBhcmUgb2Z0ZW4gY3VsdGl2YXRlZCBsaWtlIGZhbWlseSBvYmxpZ2F0aW9uczwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTEwNzg1OTMtZmIyNi00OTE4LWFkNGMtMTc4MWJjZDYwMDJmeHdfPHA+4oCiIEluIHRoZSBpbnRlcnR3aW5pbmcgb2YgbWFydGlhbCBhcnRzLCBzZWN1cml0eSBzZXJ2aWNlcywgYW5kIGxvY2FsIGJ1c2luZXNzIGludGVyZXN0czwvcD53DmNvcmUvcGFyYWdyYXBoeXckMjk1ZGVlMmItY2M2Yi00MTZiLTg5ODUtODQ0Y2EyYTc0YWJleHeMATxwPuKAoiBJbiB0aGUgbmFycmF0aXZlIHRyYWRpdGlvbiB0aGF0IGNhc3RzIG1hc3RlcnMgc3VjaCBhcyBEb25nIEhhaWNodWFuLCBaaGFuZyBaaGFvZG9uZywgYW5kIFdhbmcgWGlhbmd6aGFpIGluIGEgc2VtaS1sZWdlbmRhcnkgbGlnaHQ8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGFmOWE3MzkwLTVjMzUtNDJmYS1iOGI3LTM5MzM4NDFhOWVjOXh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JDQ4YmE1MWQ5LWIwZWMtNGY1My05MWU3LTk1NjkxNDA0ZDkwN3h32gE8cD5FdmVuIHRob3VnaCB0aGUgcG9saXRpY2FsIGNvbmRpdGlvbnMgYXJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IHRvZGF5LCBjZXJ0YWluIHBhcmFsbGVscyBjYW4gYmUgc2VlbiBpbiBtb2Rlcm4gc2VjdXJpdHkgY29tcGFuaWVzLCBzZW1pLW9mZmljaWFsIGxvY2FsIG9yZ2FuaXphdGlvbnMsIGFuZCB0aGUgcHJpdmF0ZSBtaWxpdGFyeSBhbmQgc2VjdXJpdHkgaW5kdXN0cnk6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0YWM4MGU3ZC0wZDBhLTQyMTYtYWYzMi0wMTc0Y2JiN2Q4OWZ4dzA8cD7igKIgUmVjcnVpdG1lbnQgdGhyb3VnaCBwZXJzb25hbCBjb250YWN0czwvcD53DmNvcmUvcGFyYWdyYXBoeXckMDNmMjZiZmUtZDViNC00ZGM3LWFlMjEtMjBkY2EzMTFkODhheHdQPHA+4oCiIFRoZSBjb21iaW5hdGlvbiBvZiBwaHlzaWNhbCBhYmlsaXRpZXMgd2l0aCBsb2NhbCBpbmZvcm1hdGlvbiBuZXR3b3JrczwvcD53DmNvcmUvcGFyYWdyYXBoeXckYzBhMWZjMjMtNWI0Ny00OWExLTllYjQtODU4ZjQ2NzE1NjAweHdOPHA+4oCiIFRoZSBhYmlsaXR5IHRvIG9wZXJhdGUgaW4gYm90aCBmb3JtYWwgYW5kIGluZm9ybWFsIHBvd2VyIHN0cnVjdHVyZXM8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDBlMmNiODZiLTc1MzMtNGUxMC1iOGFlLTc0MzY3NWM0ZDUwNHh3JDxwIGNsYXNzPSJoYXMtbWVkaXVtLWZvbnQtc2l6ZSI+PC9wPncOY29yZS9wYXJhZ3JhcGh5dwZtZWRpdW13JGY4YzUzNGQyLTI4ZGItNDNmYy04ZTFhLTRlNjM0MDdjODg2MXh3xwI8cD5UaGUgbWFydGlhbCBhcnRzIG5ldHdvcmtzIG9mIG5vcnRoZXJuIENoaW5hIGF0IHRoYXQgdGltZSBhcmUgYW4gZXhhbXBsZSBvZiBob3cgcGh5c2ljYWwgYWJpbGl0aWVzLCBzb2NpYWwgdGllcywgYW5kIGVjb25vbWljIGludGVyZXN0cyBjYW4gYmUgaW50ZXJkZXBlbmRlbnQuIFRoZXkgc2hvdyB0aGF0IG1hcnRpYWwgYXJ0cyBpbiBDaGluYSB3ZXJlIG5vdCBqdXN0IGEgbWF0dGVyIG9mIHRyYWluaW5nIG9yIHBoaWxvc29waHksIGJ1dCBhIGNlbnRyYWwgc29jaWFsIHJlc291cmNlIHRoYXQgY291bGQgc2hhcGUgbGl2ZXMsIHBvd2VyLCBhbmQgaW5mbHVlbmNlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMGU2OTI2ZTgtM2M5ZS00ZDE2LThlYzQtODUwYzU0ZjM0YzRmeHfjATxwPlRoZWlyIGhpc3RvcnkgaXMgdGh1cyBub3Qgb25seSBhIGNoYXB0ZXIgaW4gdGhlIGRldmVsb3BtZW50IG9mIENoaW5lc2UgbWFydGlhbCBhcnRzLCBidXQgYWxzbyBhIHJlZmxlY3Rpb24gb2YgdGhlIHBvbGl0aWNhbCBhbmQgc29jaWFsIHVwaGVhdmFscyB0aGF0IHNoYXBlZCB0aGUgY291bnRyeSBmcm9tIHRoZSBlbmQgb2YgdGhlIGltcGVyaWFsIGVyYSB0byB0aGUgbW9kZXJuIGRheS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDRkZDUyNGRlLWI3OGEtNDhhZS1iNjRmLTNhMjgzMmVhZGZiNXh3IzxwIGNsYXNzPSJoYXMtbGFyZ2UtZm9udC1zaXplIj48L3A+dw5jb3JlL3BhcmFncmFwaHl3BWxhcmdldyQ0YmE4ZjNmZi0zN2Y0LTQ1NGMtYWVlNi0wZjc5MmYyYWFjY2Z4d1s8cCBjbGFzcz0iaGFzLW1lZGl1bS1mb250LXNpemUiPjxzdHJvbmc+UHJpbWFyeSBzb3VyY2VzIC8gQ29udGVtcG9yYXJ5IHJlcG9ydHM8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3Bm1lZGl1bXckY2M1NWQyNzAtOWVhYi00MzE2LWE4YjctODQ3NWZiN2VjZjIweHelATxwPuKAoiBCZWlqaW5nIEdhemV0dGUgKHZhcmlvdXMgZWRpdGlvbnMsIDE4NjDigJMxOTEwKSDigJMgT2ZmaWNpYWwgY291cnQgYnVsbGV0aW5zIG1lbnRpb25pbmcgYWRtaW5pc3RyYXRpdmUgb2ZmaWNpYWxzIGFuZCBzZWN1cml0eSBwZXJzb25uZWwgaW4gbm9ydGhlcm4gQ2hpbmEuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwY2MyNjQwOC1mMWJkLTRlZjYtOTcwOC0wNzAwOWVlMDAzZjV4d48BPHA+4oCiIFlvdW5naHVzYmFuZCwgRi4gRS4gQ2hpbmEgYW5kIHRoZSBGYXIgRWFzdCAoMTg5OSkg4oCTIFRyYXZlbG9ndWUgd2l0aCBkZXNjcmlwdGlvbnMgb2YgYXJtZWQgZXNjb3J0cyBhbmQgbWFydGlhbCBhcnRzIGRlbW9uc3RyYXRpb25zLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZjRmNzAyMjEtOGYxZS00MmQ0LWFmMmMtYWIyODViOTUzNGE1eHeJATxwPuKAoiBQYXJrZXIsIEUuIEguIENoaW5lc2UgU2VjcmV0IFNvY2lldGllcyAoMTkwMCkg4oCTIEVhcmx5IFdlc3Rlcm4gYWNjb3VudCBvZiBDaGluZXNlIHNlY3JldCBzb2NpZXRpZXMgYW5kIHRoZWlyIGxvY2FsIGluZmx1ZW5jZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDdiZDVjMDJlLTRjZDEtNGQ5My1hOTlmLTU5MWZlM2VjMmVhOHh3kAE8cD7igKIgUmVwb3J0cyBmcm9tIHRoZSBOb3J0aCBDaGluYSBIZXJhbGQgKFNoYW5naGFpKSwgMTg3NeKAkzE5MTUg4oCTIE5ld3NwYXBlciBhcnRpY2xlcyBvbiBjcmltZSwgcG9saWNlLCBhbmQgbWFydGlhbCBhcnRzIGRlbW9uc3RyYXRpb25zLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODQ3MDU2OWYtMmY2ZC00MDc0LWEwZDctYzg5ZGJkNzllMDZieHdcPHAgY2xhc3M9Imhhcy1tZWRpdW0tZm9udC1zaXplIj48c3Ryb25nPlNlY29uZGFyeSBzb3VyY2VzIC8gcmVzZWFyY2ggbGl0ZXJhdHVyZTwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXcGbWVkaXVtdyRjOGNkMzZhMS1mNDU4LTQ3OWQtODMxOC0zZGZkY2M3MzNjYzV4d9MBPHA+4oCiIEVzaGVyaWNrLCBKb3NlcGggVy4gVGhlIE9yaWdpbnMgb2YgdGhlIEJveGVyIFVwcmlzaW5nLiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MsIDE5ODcg4oCTIEFib3V0IG1pbGl0aWFzLCBtYXJ0aWFsIGFydHMgZ3JvdXBzLCBhbmQgc2VjcmV0IHNvY2lldGllcyBpbiBub3J0aGVybiBDaGluYSBkdXJpbmcgdGhlIGxhdGUgUWluZyBwZXJpb2QuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkMDgyYzE3MS1lOTk0LTQ0NjMtYjIwZS03ODY1MjYwNTRmZDl4d74BPHA+4oCiIE93bmJ5LCBEYXZpZC4gQnJvdGhlcmhvb2RzIGFuZCBTZWNyZXQgU29jaWV0aWVzIGluIEVhcmx5IGFuZCBNaWQtUWluZyBDaGluYS4gU3RhbmZvcmQgVW5pdmVyc2l0eSBQcmVzcywgMTk5NiDigJMgQW5hbHlzaXMgb2YgdGhlIHJvbGUgb2Ygc3dvcm4gYnJvdGhlcmhvb2RzIGFuZCB0aGVpciBzb2NpYWwgcmVhY2guPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhYjIwYjQ2Yy03NmUxLTQ5OWQtYjBjYy1mYzk5ZDI2ZTQ0MGN4d+ABPHA+4oCiIEtlbm5lZHksIEJyaWFuICZhbXA7IEd1bywgRWxpemFiZXRoLiBDaGluZXNlIE1hcnRpYWwgQXJ0cyBUcmFpbmluZyBNYW51YWxzOiBBIEhpc3RvcmljYWwgU3VydmV5LiBOb3J0aCBBdGxhbnRpYyBCb29rcywgMjAwNSDigJMgRG9jdW1lbnRhdGlvbiBvbiBtYXJ0aWFsIGFydHMgcHJhY3RpY2UgaW4gdGhlIGxhdGUgUWluZyBhbmQgZWFybHkgUmVwdWJsaWNhbiBwZXJpb2RzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODJiMWRhMGYtZmExMi00ZjFhLWExMTQtMmI5NjllN2E2MDI0eHfgATxwPuKAoiBNb3JyaXMsIEFuZHJldyBELiBNYXJyb3cgb2YgdGhlIE5hdGlvbjogQSBIaXN0b3J5IG9mIFNwb3J0IGFuZCBQaHlzaWNhbCBDdWx0dXJlIGluIFJlcHVibGljYW4gQ2hpbmEuIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBQcmVzcywgMjAwNCDigJMgQ29udGV4dCBvbiBtYXJ0aWFsIGFydHMgYW5kIHBoeXNpY2FsIGN1bHR1cmUgaW4gdGhlIGVhcmx5IDIwdGggY2VudHVyeS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDRlNzAzNjVlLWNiODAtNGZhZC1iNzJmLTY2NDE5MDJhYWNjOXh3rwE8cD7igKIgTG9yZ2UsIFBldGVyIEEuIENoaW5lc2UgTWFydGlhbCBBcnRzOiBGcm9tIEFudGlxdWl0eSB0byB0aGUgVHdlbnR5LUZpcnN0IENlbnR1cnkuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAyMDEyIOKAkyBDb21wcmVoZW5zaXZlIG92ZXJ2aWV3IHdpdGggaGlzdG9yaWNhbCBkZXB0aC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDg3YzE3NWRhLTRmODctNDZmMi05MzAzLWFjNzBhZjJhOGNjN3h3lgE8cD7igKIgSGVubmluZywgU3RhbmxleSBFLiDigJxDaGluZXNlIE1hcnRpYWwgQXJ0cyBpbiB0aGUgTGF0ZSBNaW5nIGFuZCBRaW5nIER5bmFzdGllcy7igJ0gSm91cm5hbCBvZiBBc2lhbiBNYXJ0aWFsIEFydHMgNiwgTm8uIDMgKDE5OTcpOiAzMOKAkzYyLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTUwYWNiZDQtMDlmZC00OWZiLWFkZjktNTI0OWVkMjcxNzJjeHexATxwPuKAoiBXYWtlbWFuLCBGcmVkZXJpYy4gUG9saWNpbmcgU2hhbmdoYWksIDE5MjfigJMxOTM3LiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MsIDE5OTUg4oCTIE9uIHRoZSBvdmVybGFwIGJldHdlZW4gbWFydGlhbCBhcnRzLCBzZWN1cml0eSBmb3JjZXMsIGFuZCBvcmdhbml6ZWQgY3JpbWUuPC9wPncOY29yZS9wYXJhZ3JhcGh5e0J52AvNubAAfbrUlc4EAA==\",\"updateId\":25173483}","footnotes":""},"class_list":["post-1127","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/pages\/1127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1127"}],"version-history":[{"count":16,"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/pages\/1127\/revisions"}],"predecessor-version":[{"id":1519,"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/pages\/1127\/revisions\/1519"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=\/wp\/v2\/media\/1116"}],"wp:attachment":[{"href":"https:\/\/bagua-zhang.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}