3. REPORTING BY PROGRAM AREA
MALARIA
Le domaine de la Malaria comprend 6 indicateurs dont voici quelques uns
- Number of children under 5 years of age with confirmed malaria who received treatment for malaria from an appropriate provider in USG-supported areas [15 fee proxy]
| 2.Nove |
34212 |
22052 |
155 |
| 3.Déce |
39061 |
22052 |
177 |
| 4.Janv |
35299 |
22052 |
160 |
| Total |
108572 |
66156 |
164 |
on note une diminution d’environ 17% du nombre de cas de malaria traité par rapport au mois de décembre, les ZS plus touchées sont Kayamba, Mukanga,Lwamba, Kinkondja et Bukama. les ZS qui ont rapporte moins de cas sont Kinda, Kaniama à cause de leur faible complétude puis Songa,Butumba et Kabongo. Parmi les ZS qui ont rapportées plus de cas, Bukama et Mulongo font faces actuellement aux inondations, tandis que Kayamba a un taux d’attaque exceptionnellement élevé du paludisme.
Realisation: PROSANI USAID a appuyé la formation des prestataires dans la prise en charge du paludisme dans les ZS de Mulongo et Songa au mois de février 2020 .
- Percent of pregnant women who received doses of sulfadoxine/ pyrimethamine (S/P) for Intermittent Preventive Treatment (IPT) during ANC visits [2.4]
| 2.Nove |
29263 |
38592 |
76 |
| 3.Déce |
31352 |
46986 |
67 |
| 4.Janv |
29893 |
39309 |
76 |
| Total |
90508 |
124887 |
72 |
on note une augmentation de de 9% par rapport à la réalisation de Décembre 2019,Les ZS de Kinda, Songa,Baka,Butumba et Kabondo Dianda etaient egalement parmis les plus faibles au dernier trimestre 2019. Les ZS qui ont ete plus performantes sont: Bukama,Kamina,Kitenge,Kayamba et Lwamba
Realisations: il y a eu briefing des prestataires sur la prevention intermittente du paludisme dans la ZS de BAKA.
MATERNAL, NEONATAL, AND CHILD HEALTH
- Number of children under five years of age that received treatment for an acute respiratory infection from an appropriate provider [5 fee proxy]
| 2.Nove |
6891 |
7055 |
98 |
| 3.Déce |
8136 |
7055 |
115 |
| 4.Janv |
7825 |
7055 |
111 |
| Total |
22852 |
21165 |
108 |
Par rapport au mois de Décembre 2019, ces résultats montrent une légère diminution de 4%. Les ZS de Kinda,Kabongo,Kaniama sont très faibles. Le no,bre de cas rapporté a été élevé dans les ZS suivantes: Kitenge, Malemba, Bukama, Kinkondja, Kayamba.
Realisations: il y a eu formation des formateurs provinciaux et également formation de quelques prestataires en PCIME et en ordinogrammes en février 2020. La ZS de Kabongo connait un sous rapportage de cet indicateur, elle sera visitée au mois de mars dans le cadre du contrôle de la qualité des données. .
- Number of insecticide-treated nets (ITN) distributed during antenatal and/or child immunization visits
| 2.Nove |
15382 |
8682 |
177 |
| 3.Déce |
8897 |
8682 |
102 |
| 4.Janv |
3933 |
8682 |
45 |
| Total |
28212 |
26046 |
108 |
Ces résultats montrent que la distribution des Milds a été très faible en janvier,elle n’a pu realiser que 45% des objectifs mensuels. Les ZS de Kayamba et Baka ont été relativement performantes tandis que Bukama,Kabondo Dianda,Kinda et Malemba n’ont pas distribue des Milds
- Number of cases of child diarrhea treated in USG-supported programs [7 fee proxy]
| 2.Nove |
9526 |
8331 |
114 |
| 3.Déce |
10204 |
8331 |
122 |
| 4.Janv |
9210 |
8331 |
111 |
| Total |
28940 |
24993 |
116 |
on remarque qu’il y a une diminution de 11% du nombre de cas de diarrhée traité par rapport au mois de Décembre avec des ZS qui ont rapporté plus de cas:Kayamba,Mulongo, Kinkondja,Malemba,Kitenge et Bukama. La ZS de Kayamba est la plus atteinte si on rapporte ses données à la population(46/10000 cas de Diarrhée alors que Mulongo n’a que 36/10000)
Les ZS qui ont rapporté moins de cas sont Kinda,Baka,Lwamba,Butumba et Mukanga.
Realisations: il y a eu formation des formateurs provinciaux et également formation de quelques prestataires en PCIME et en ordinogrammes.
- Number of children less than 12 months of age who received three doses of pentavalent vaccine [9 fee proxy]
| 2.Nove |
7185 |
10249 |
70 |
| 3.Déce |
7712 |
10249 |
75 |
| 4.Janv |
7372 |
10249 |
72 |
| Total |
22269 |
30747 |
72 |
on note une regression de 3% par rapport a la proportion du mois de Décembre, les ZS de Kinda et Kaniama ont une faible complétude dans le DHIS2.
Les ZS qui ont beaucoup vacciné sont Kamina,Kayamba,Lwamba, Malemba et Kinkondja
Les ZS qui ont moins vacciné sont: Kinda,Kaniama, Baka et Kitenge.
- Percent of children less than 12 months of age who received measles vaccine from USG-supported programs [10]
| 2.Nove |
10925 |
10267 |
106 |
| 3.Déce |
10945 |
10267 |
107 |
| 4.Janv |
11171 |
10267 |
109 |
| Total |
33041 |
30801 |
107 |
Les résultats de janvier depassent ceux de Décembre de 2%.
Les ZS qui ont eu une bonne couverture sont:Songa,Bukama,Mulongo,Malemba et Kayamba.
Les ZS moins performantes sont:Kinda,Baka,Lwamba et Kaniama.
- Percentage of pregnant women attending at least one antenatal care (ANC) visit with a skilled provider from USG- supported health facilities
- Percentage of pregnant women attending at least one and at least 4 antenatal care (ANC) with a skilled provider from USG-supported health facilities [12 fee]
| 2.Nove |
7076 |
5850 |
121 |
| 3.Déce |
7862 |
5850 |
134 |
| 4.Janv |
7645 |
5850 |
131 |
| Total |
22583 |
17550 |
129 |
il y a une diminution de 3% par rapport au mois de Décembre, les ZS ayant un fort taux de couverture en CPN sont:Lwamba,Bukama,Kitenge, Kayamba et Kamina.
Les ZS moins performantes sont:Kinda,Baka,Lwamba et Songa
- Percentage of deliveries with an SBA in USG-supported facilities
- Number of women giving birth who received uterotonics in the third stage of labor (OR immediately after birth) through USG-supported programs [2.1.4]
| 2.Nove |
519 |
726 |
71 |
| 3.Déce |
683 |
726 |
94 |
| 4.Janv |
681 |
726 |
94 |
| Total |
1883 |
2178 |
86 |
on note que le nombre des femmes qui ont reçu la Gatpa augmente en Décembre et en janvier, les ZS qui ont rapporté le plus de cas sont: Kitenge,Bukama,Kaniama, Kabongo. Kabongo et Bukama ont un important poid demographique tandis que pour Kitenge et Kaniama, d’autres facteurs favorisants doivent être recherchés.
- Number and percentage of newborns receiving essential newborn care through USG-supported programs
| 2.Nove |
10434 |
9568 |
100 |
92 |
| 3.Déce |
11641 |
10487 |
100 |
90 |
| 4.Janv |
11140 |
10240 |
100 |
92 |
| Total |
33215 |
30295 |
100 |
91 |
il y a une augmentation de 2% par rapport à Décembre 2019, parmi les ZS qui ont rapporté plus de cas il y a: Lwamba,Malemba,Kitenge,Kinkondja,Kayamba.
Les ZS moins performantes sont:Kinda,Kabondo Dianda,Butumba,Kaniama
- Number of postpartum/newborn visits within three days of birth in USG-supported programs [2.1.6]
| 2.Nove |
10073 |
7853 |
128 |
| 3.Déce |
11191 |
7853 |
143 |
| 4.Janv |
10769 |
7853 |
137 |
| Total |
32033 |
23559 |
136 |
il y a une regression de 6% par rapport au mois précedent, avec des ZS plus performantes (Lwamba,Kayamba,Kitenge,Baka) et les ZS qui ont un faible taux(Kabondo, Butumba,Kaniama)
- Drop-out rate in DTP-HepB-Hib3 among children less than 12 months of age [2.1.9]
LS0tDQp0aXRsZTogIlJBUFBPUlRfRkVWX0hMIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFKQ0KYGBgDQoNCg0KIyMgMy4gUkVQT1JUSU5HIEJZIFBST0dSQU0gQVJFQQ0KJm5ic3A7DQoNCmBgYHtyLG1lc3NhZ2U9Rn0NCmRhdGFiPC1yZWFkLmNzdigiREFUQUIuY3N2IikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KDQpiPC1uYW1lcyhkYXRhYikNCmI8LWdzdWIoIlxcLisiLCJcXC4iLGIpDQpkPC0nc29tZXRoaW5nJw0KZm9yIChpIGluIDE6NSl7ZFtpXTwtYltpXX0NCmZvciAoaSBpbiA2Omxlbmd0aChiKSl7DQogZjwtc3Ryc3BsaXQoYltpXSwiXFwuIikNCiAgZjwtdW5saXN0KGYpDQogIGRbaV08LXBhc3RlKGZbNF0sZls1XSxmW2xlbmd0aChmKV0sc2VwPSIuIil9DQogZFs0OjVdPC1nc3ViKCJbQVxcLjJcXC4xXFwuXSIsJycsZFs0OjVdKQ0KIA0KbmFtZXMoZGF0YWIpPC1kDQpuYW1lcyhkYXRhYilbNjo4XTwtcGFzdGUwKCJTUCIsMTozKQ0KbmFtZXMoZGF0YWIpWzI1OjI2XTwtcGFzdGUwKCJwYWx1IixjKCJzIiwiZyIpLHNlcD0iXyIpDQpuYW1lcyhkYXRhYilbMjA6MjFdPC1wYXN0ZTAoIkRpYXJyX3NldiIsMToyKQ0KDQpkYXRhYiRwZXJpb2RuYW1lPC1hcy5jaGFyYWN0ZXIoZGF0YWIkcGVyaW9kbmFtZSkNCm1vaXM8LWMoIk9jdG9icmUiLCJOb3ZlbWJyZSIsIkTDqWNlbWJyZSIsIkphbnZpZXIiLCJGw6l2cmllciIsIk1hcnMiLCJBdnJpbCIsIk1haSIsIkp1aW4iLCJKdWlsbGV0IiwiQW/Du3QiLCJTZXB0ZW1icmUiKQ0KZGF0YWIkbW9udGg8LXBhc3RlKG1hdGNoKGRhdGFiJHBlcmlvZG5hbWUsbW9pcyksZGF0YWIkcGVyaW9kbmFtZSxzZXA9Ii4iKQ0KZGF0YWIkbW9udGg8LXN1YnN0cihkYXRhYiRtb250aCwxLDYpDQpkYXRhYiRwZXJpb2RuYW1lPC1kYXRhYiRtb250aA0KZGF0YWIkbW9udGg8LU5VTEwNCmRhdGFnPC1kYXRhYltkYXRhYiRwZXJpb2RuYW1lICVpbiUgYygiNC5KYW52IiwiMy5Ew6ljZSIsIjIuTm92ZSIpLF0NCmRhdGFnPC1hZ2dyZWdhdGUoZGF0YWdbLDQ6bmNvbChkYXRhZyldLGxpc3QoZGF0YWckenMsZGF0YWckcGVyaW9kbmFtZSksc3VtLG5hLnJtPVQpDQpuYW1lcyhkYXRhZylbMToyXTwtYygienMiLCJwZXJpb2RuYW1lIikNCg0KdG90MiA8LSBmdW5jdGlvbih4ZCl7DQogIHA8LWMoYXMuY2hhcmFjdGVyKHhkWywxXSksJ1RvdGFsJykNCiAgYTwtYXBwbHkoeGRbLDI6bmNvbCh4ZCldLDIsc3VtLG5hLnJtPVQpDQogIGE8LXJiaW5kKHhkWywyOm5jb2woeGQpXSxhKQ0KICB1PC1kYXRhLmZyYW1lKHAsYSkNCiAgbmFtZXModSlbMV08LSJNb2lzIg0KICBhc3NpZ24oInRvdGFsIix1LGVudmlyPS5HbG9iYWxFbnYpDQp9DQoNCiNjaWJsZXM8LXJlYWQuY3N2KCJDSUJMRVMyLmNzdiIpDQojY2libGVhPC1yZWFkLmNzdjIoIkM6L1VzZXJzL011eXVuZ2FQL0RvY3VtZW50cy9QUk9TQU5JIFVTQUlEL0FOQUxZU0lTL1kyL2NpYmxlcy5jc3YiKQ0KI2NpYmxlZzwtYWdncmVnYXRlKGNpYmxlc1ssMzpuY29sKGNpYmxlcyldLGxpc3QoY2libGVzJEdyb3VwLjIpLHN1bSxuYS5ybT1UKQ0KI25hbWVzKGNpYmxlZylbMV08LSd6cycNCg0KY2libGU8LXJlYWQuY3N2KCJDOi9Vc2Vycy9NdXl1bmdhUC9Eb2N1bWVudHMvUFJPU0FOSSBVU0FJRC9BTkFMWVNJUy9ZMi9OT1ZFTUJSRS9RMS9DSUJMRVMyLmNzdiIpDQoNCmNpYmxlPC0gY2libGVbMyxdDQoNCiNzaW5rKCJuYW1lc19kYXRhLnR4dCIpDQojbmFtZXMoZGF0YWIpDQojbmFtZXMoY2libGUpDQojbmFtZXMoZGF0YWcpDQojc2luaygpDQoNCnJhcHBvcnQ8LWZ1bmN0aW9uKHhkLG4pew0KICB4eTwtc3Vic2V0KHhkLHhkJHBlcmlvZG5hbWU9PSI0LkphbnYiLHNlbGVjdD1jKDEsbiw0NykpDQogIHh5WywyXTwtcm91bmQoeHlbLDJdKjEwMDAwL3h5WywzXSkNCiAgbTwtbWF4KHh5WywyXSkNCiAgbTwtbSsuMiptDQogIHh5PC14eVtvcmRlcih4eVssMl0sZGVjcmVhc2luZz1GKSxdDQogIGY9YmFycGxvdCh4eVssMl0sbmFtZXM9eHkkenMsY29sPSJsaWdodGJsdWUiLA0KICBib3JkZXI9InJlZCIsbGFzPTIsbWFpbj1wYXN0ZTAobmFtZXMoeGQpW25dLCIvMTAwMDAiKSx5bGltPWMoMCxtKSkNCiAgeT14eVssMl0NCiAgdGV4dChmLHkrMSxsYWJlbHM9YXMuY2hhcmFjdGVyKHh5WywyXSksY2V4PS43KQ0KfQ0KDQpEaDwtZnVuY3Rpb24oeGQsbil7DQogIHh5PC1zdWJzZXQoeGQseGQkcGVyaW9kbmFtZT09IjQuSmFudiIsc2VsZWN0PWMoMSxuKSkNCiAgeHlbLDJdPC1yb3VuZCh4eVssMl0pDQogIG08LW1heCh4eVssMl0pDQogIG08LW0rLjIqbQ0KICB4eTwteHlbb3JkZXIoeHlbLDJdLGRlY3JlYXNpbmc9RiksXQ0KICBmPWJhcnBsb3QoeHlbLDJdLG5hbWVzPXh5JHpzLGNvbD0ibGlnaHRibHVlIiwNCiAgYm9yZGVyPSJyZWQiLGxhcz0yLG1haW49cGFzdGUwKG5hbWVzKHhkKVtuXSwiLzEwMDAwIikseWxpbT1jKDAsbSkpDQogIHk9eHlbLDJdDQogIHRleHQoZix5KzEsbGFiZWxzPWFzLmNoYXJhY3Rlcih4eVssMl0pLGNleD0uNykNCn0NCg0KYGBgDQogICAgDQoNCiMjIyBNQUxBUklBDQoNCiZuYnNwOw0KTGUgZG9tYWluZSBkZSBsYSBNYWxhcmlhIGNvbXByZW5kIDYgaW5kaWNhdGV1cnMgZG9udCB2b2ljaSBxdWVscXVlcyB1bnMNCg0KJm5ic3A7DQotICoqTnVtYmVyIG9mIGNoaWxkcmVuIHVuZGVyIDUgeWVhcnMgb2YgYWdlIHdpdGggY29uZmlybWVkIG1hbGFyaWEgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBmb3IgbWFsYXJpYSBmcm9tIGFuIGFwcHJvcHJpYXRlIHByb3ZpZGVyIGluIFVTRy1zdXBwb3J0ZWQgYXJlYXMgWzE1IGZlZSBwcm94eV0qKiAgDQoNCiZuYnNwOw0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCI5NDA3IiksYygiNzQ0MzAiKSxjKCIxMjYuNCIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSIpKQ0KDQpgYGANCg0KJm5ic3A7DQoNCg0KYGBge3J9DQphPC1kYXRhZw0KYSRwYWx1PC1yb3dTdW1zKGFbLDI0OjI1XSkNCmE8LWFnZ3JlZ2F0ZShhWyxjKDI0LG5jb2woYSkpXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtLG5hLnJtPVQpDQphJGNpYmxlPC1yb3VuZChjaWJsZSRQYWx1ZGlzbWUvMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCnRvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJHBhbHUqMTAwL3RvdGFsJGNpYmxlLDApDQprbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KI2I8LWRhdGFjDQojYiRwYWx1PC1yb3dTdW1zKGJbLDIxOjIyXSxuYS5ybT1UKQ0KZGF0YWclPiVncm91cF9ieSh6cyklPiVzdW1tYXJpc2UoUGFsdT1zdW0ocGFsdXNfK3BhbHVnXykpLT5wDQojcCRkZW5zaXR5PC1jbHVzJGRlbnNpdHkNCiNnZ3Bsb3QocCxhZXMoeD16cyx5PVBhbHUsZmlsbD1kZW5zaXR5KSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0idG9tYXRvIixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1QYWx1KSxjZXg9Myx2anVzdD0yKQ0KDQojYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKFBhbHU9c3VtKHBhbHUpKS0+cA0KDQojZ2dwbG90KHAsYWVzKHg9cGVyaW9kbmFtZSx5PVBhbHUpKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsZmlsbD0ibGlnaHRibHVlIixjb2w9InRvbWF0byIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9UGFsdSksY2V4PTMsdmp1c3Q9MikNCg0KYGBgDQoNCg0KJm5ic3A7DQoNCm9uIG5vdGUgdW5lIGRpbWludXRpb24gZCdlbnZpcm9uIDE3JSBkdSBub21icmUgZGUgY2FzIGRlIG1hbGFyaWEgdHJhaXTDqSBwYXIgcmFwcG9ydCBhdSBtb2lzIGRlIGTDqWNlbWJyZSwgbGVzIFpTIHBsdXMgdG91Y2jDqWVzIHNvbnQgS2F5YW1iYSwgTXVrYW5nYSxMd2FtYmEsIEtpbmtvbmRqYSBldCBCdWthbWEuIGxlcyBaUyBxdWkgb250IHJhcHBvcnRlIG1vaW5zIGRlIGNhcyBzb250IEtpbmRhLCBLYW5pYW1hIMOgIGNhdXNlIGRlIGxldXIgZmFpYmxlIGNvbXBsw6l0dWRlIHB1aXMgU29uZ2EsQnV0dW1iYSBldCBLYWJvbmdvLg0KUGFybWkgbGVzIFpTIHF1aSBvbnQgcmFwcG9ydMOpZXMgcGx1cyBkZSBjYXMsIEJ1a2FtYSBldCBNdWxvbmdvIGZvbnQgZmFjZXMgYWN0dWVsbGVtZW50IGF1eCBpbm9uZGF0aW9ucywgdGFuZGlzIHF1ZSBLYXlhbWJhIGEgdW4gdGF1eCBkJ2F0dGFxdWUgZXhjZXB0aW9ubmVsbGVtZW50IMOpbGV2w6kgZHUgcGFsdWRpc21lLiAgDQoNCiZuYnNwOw0KDQogKipSZWFsaXNhdGlvbjoqKiBQUk9TQU5JIFVTQUlEIGEgYXBwdXnDqSBsYSBmb3JtYXRpb24gZGVzIHByZXN0YXRhaXJlcyBkYW5zIGxhIHByaXNlIGVuIGNoYXJnZSBkdSBwYWx1ZGlzbWUgZGFucyBsZXMgWlMgZGUgTXVsb25nbyBldCBTb25nYSBhdSBtb2lzIGRlIGbDqXZyaWVyIDIwMjAgLg0KDQombmJzcDsNCg0KLQkqKlBlcmNlbnQgb2YgcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIGRvc2VzIG9mIHN1bGZhZG94aW5lLyBweXJpbWV0aGFtaW5lIChTL1ApIGZvciBJbnRlcm1pdHRlbnQgUHJldmVudGl2ZSBUcmVhdG1lbnQgKElQVCkgZHVyaW5nIEFOQyB2aXNpdHMgWzIuNF0qKg0KDQombmJzcDsNCg0KYGBge3J9DQphPC1kYXRhZw0KYSRTUDwtcm93U3VtcyhhWyw1OjddKQ0KYTwtYWdncmVnYXRlKGFbLGMoMyxuY29sKGEpKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LWFbLDJdKjMNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkU1AqMTAwL3RvdGFsJGNpYmxlLDApDQprbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KDQojYjwtZGF0YWMNCiNiJFNQPC1yb3dTdW1zKGJbLDY6OF0sbmEucm09VCkNCiNkYXRhZyU+JWdyb3VwX2J5KHpzKSU+JXN1bW1hcmlzZShTUD1zdW0oU1AxK1NQMitTUDMpKS0+cA0KI3AkZGVuc2l0eTwtY2x1cyRkZW5zaXR5DQojZ2dwbG90KHAsYWVzKHg9enMseT1TUCxmaWxsPWRlbnNpdHkpKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsY29sPSJ0b21hdG8iLGFscGhhPS43KSt0aGVtZV9jbGFzc2ljKCkrbGFicyh4PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStnZW9tX3RleHQoYWVzKGxhYmVsPVNQKSxjZXg9Myx2anVzdD0yKQ0KDQojYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKHNwYT1zdW0oU1AxK1NQMitTUDMsbmEucm09VCksY3BuYT1zdW0oQ1BOLG5hLnJtPVQpKSU+JSBtdXRhdGUoU1A9cm91bmQoc3BhKjEwMC8oY3BuYSozKSkpLT5wDQoNCiNnZ3Bsb3QocCxhZXMoeD1wZXJpb2RuYW1lLHk9U1ApKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsZmlsbD0ibGlnaHRibHVlIixjb2w9InRvbWF0byIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9U1ApLGNleD0zLHZqdXN0PTIpDQoNCg0KYGBgDQoNCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiOTEuMCIpLGMoIjM3NTE4IiksYygiNDEyNDUiKSxjKCIxMDAiKSxjKCc5MS4wJykpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCdOdW1lcmF0b3InLCdEZW5vbWluYXRvcicsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSIpKQ0KDQpgYGANCg0KJm5ic3A7ICANCiZuYnNwOyAgDQoNCm9uIG5vdGUgdW5lIGF1Z21lbnRhdGlvbiBkZSBkZSA5JSBwYXIgcmFwcG9ydCDDoCBsYSByw6lhbGlzYXRpb24gZGUgRMOpY2VtYnJlIDIwMTksTGVzIFpTIGRlIEtpbmRhLCBTb25nYSxCYWthLEJ1dHVtYmEgZXQgS2Fib25kbyBEaWFuZGEgZXRhaWVudCBlZ2FsZW1lbnQgcGFybWlzIGxlcyBwbHVzIGZhaWJsZXMgYXUgZGVybmllciB0cmltZXN0cmUgMjAxOS4NCkxlcyBaUyBxdWkgb250IGV0ZSBwbHVzIHBlcmZvcm1hbnRlcyBzb250OiBCdWthbWEsS2FtaW5hLEtpdGVuZ2UsS2F5YW1iYSBldCBMd2FtYmENCg0KKipSZWFsaXNhdGlvbnM6KiogaWwgeSBhIGV1IGJyaWVmaW5nIGRlcyBwcmVzdGF0YWlyZXMgc3VyIGxhIHByZXZlbnRpb24gaW50ZXJtaXR0ZW50ZSBkdSBwYWx1ZGlzbWUgZGFucyBsYSBaUyBkZSBCQUtBLg0KDQombmJzcDsNCiZuYnNwOw0KDQojIyBNQVRFUk5BTCwgTkVPTkFUQUwsIEFORCBDSElMRCBIRUFMVEgNCiZuYnNwOw0KJm5ic3A7DQotCSoqTnVtYmVyIG9mIGNoaWxkcmVuIHVuZGVyIGZpdmUgeWVhcnMgb2YgYWdlIHRoYXQgcmVjZWl2ZWQgdHJlYXRtZW50IGZvciBhbiBhY3V0ZSByZXNwaXJhdG9yeSBpbmZlY3Rpb24gZnJvbSBhbiBhcHByb3ByaWF0ZSBwcm92aWRlciBbNSBmZWUgcHJveHldKiogDQpgYGB7cn0NCmE8LWRhdGFnDQphJFBuZXVtb25pZTwtcm93U3VtcyhhWywyMjoyM10pDQphPC1hZ2dyZWdhdGUoYVssYygyMixuY29sKGEpKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LXJvdW5kKGNpYmxlJFBuZXVtb25pZS8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkUG5ldW1vbmllKjEwMC90b3RhbCRjaWJsZSwwKQ0Ka25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NyJykNCg0KI2I8LWRhdGFjDQojYiRwbmV1bTwtcm93U3VtcyhiWywxOToyMF0sbmEucm09VCkNCiNkYXRhZyU+JWdyb3VwX2J5KHpzKSU+JXN1bW1hcmlzZShwbmV1bT1zdW0oUG5ldW1vbmllLnNpbXBsZS5hbnMrUG5ldW1vbmllLmdyYXZlLmFucyxuYS5ybT1UKSktPnANCiNwJGRlbnNpdHk8LWNsdXMkZGVuc2l0eQ0KI2dncGxvdChwLGFlcyh4PXpzLHk9cG5ldW0sZmlsbD1kZW5zaXR5KSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0idG9tYXRvIixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1wbmV1bSksY2V4PTMsdmp1c3Q9MikNCg0KI2IlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShwbmV1bT1zdW0oUG5ldW1vbmllLnNpbXBsZS5hbnMrUG5ldW1vbmllLmdyYXZlLmFucyxuYS5ybT1UKSktPnANCg0KI2dncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1wbmV1bSkpK2dlb21fYmFyKHN0YXQ9J2lkZW50aXR5JyxmaWxsPSJsaWdodGJsdWUiLGNvbD0idG9tYXRvIixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1wbmV1bSksY2V4PTMsdmp1c3Q9MikNCmBgYA0KDQoNCmBgYHtyfQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjE5ODcyIiksYygiMjE1ODEiKSxjKCI5Mi4xIikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlKCUpIikpDQoNCmBgYA0KDQombmJzcDsgIA0KJm5ic3A7ICANCg0KUGFyIHJhcHBvcnQgYXUgbW9pcyBkZSBEw6ljZW1icmUgMjAxOSwgY2VzIHLDqXN1bHRhdHMgbW9udHJlbnQgdW5lIGzDqWfDqHJlIGRpbWludXRpb24gZGUgNCUuIExlcyBaUyBkZSBLaW5kYSxLYWJvbmdvLEthbmlhbWEgc29udCB0csOocyBmYWlibGVzLiBMZSBubyxicmUgZGUgY2FzIHJhcHBvcnTDqSBhIMOpdMOpIMOpbGV2w6kgZGFucyBsZXMgWlMgc3VpdmFudGVzOiBLaXRlbmdlLCBNYWxlbWJhLCBCdWthbWEsIEtpbmtvbmRqYSwgS2F5YW1iYS4gDQoNCioqUmVhbGlzYXRpb25zOioqDQppbCB5IGEgZXUgZm9ybWF0aW9uIGRlcyBmb3JtYXRldXJzIHByb3ZpbmNpYXV4IGV0IMOpZ2FsZW1lbnQgZm9ybWF0aW9uIGRlIHF1ZWxxdWVzIHByZXN0YXRhaXJlcyBlbiBQQ0lNRSBldCBlbiBvcmRpbm9ncmFtbWVzIGVuIGbDqXZyaWVyIDIwMjAuIExhIFpTIGRlIEthYm9uZ28gY29ubmFpdCB1biBzb3VzIHJhcHBvcnRhZ2UgZGUgY2V0IGluZGljYXRldXIsIGVsbGUgc2VyYSB2aXNpdMOpZSBhdSBtb2lzIGRlIG1hcnMgZGFucyBsZSBjYWRyZSBkdSBjb250csO0bGUgZGUgbGEgcXVhbGl0w6kgZGVzIGRvbm7DqWVzLg0KLg0KDQombmJzcDsNCiZuYnNwOw0KDQotICoqTnVtYmVyIG9mIGluc2VjdGljaWRlLXRyZWF0ZWQgbmV0cyAoSVROKSBkaXN0cmlidXRlZCBkdXJpbmcgYW50ZW5hdGFsIGFuZC9vciBjaGlsZCBpbW11bml6YXRpb24gdmlzaXRzKioNCg0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIyMjk1OCIpLGMoIjI2MDQ1IiksYygiODguMSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSglKSIpKQ0KDQpgYGANCg0KYGBge3J9DQphPC1kYXRhZw0KYSRNaWxkPC1yb3dTdW1zKGFbLDI5OjM0XSkNCmE8LWFnZ3JlZ2F0ZShhWyxjKDI5LG5jb2woYSkpXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtKQ0KYSRjaWJsZTwtcm91bmQoY2libGUkTUlMRC8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkTWlsZCoxMDAvdG90YWwkY2libGUsMCkNCmtuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQpgYGANCg0KJm5ic3A7DQombmJzcDsNCg0KQ2VzIHLDqXN1bHRhdHMgbW9udHJlbnQgcXVlIGxhIGRpc3RyaWJ1dGlvbiBkZXMgTWlsZHMgYSDDqXTDqSB0csOocyBmYWlibGUgZW4gamFudmllcixlbGxlIG4nYSBwdSByZWFsaXNlciBxdWUgNDUlIGRlcyBvYmplY3RpZnMgbWVuc3VlbHMuDQpMZXMgWlMgZGUgS2F5YW1iYSBldCBCYWthICBvbnQgw6l0w6kgcmVsYXRpdmVtZW50IHBlcmZvcm1hbnRlcyB0YW5kaXMgcXVlIEJ1a2FtYSxLYWJvbmRvIERpYW5kYSxLaW5kYSBldCBNYWxlbWJhIG4nb250IHBhcyBkaXN0cmlidWUgZGVzIE1pbGRzDQoNCiZuYnNwOw0KDQotCSoqTnVtYmVyIG9mIGNhc2VzIG9mIGNoaWxkIGRpYXJyaGVhIHRyZWF0ZWQgaW4gVVNHLXN1cHBvcnRlZCBwcm9ncmFtcyBbNyBmZWUgcHJveHldKioNCiZuYnNwOw0KYGBge3J9DQphPC1kYXRhZw0KYSREaWFycmhlZTwtcm93U3VtcyhhWywxOToyMV0pDQphPC1hZ2dyZWdhdGUoYVssYygxOSxuY29sKGEpKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LXJvdW5kKGNpYmxlJERpYXJyaGVlLzEyKQ0KdG90MihhKQ0KdG90YWxbLDJdPC1OVUxMDQp0b3RhbCRwZXJjZW50PC1yb3VuZCh0b3RhbCREaWFycmhlZSoxMDAvdG90YWwkY2libGUsMCkNCmtuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQoNCiNiPC1kYXRhYw0KI2IkRGlhcnJoPC1yb3dTdW1zKGJbLDE2OjE4XSxuYS5ybT1UKQ0KI25hbWVzKGIpWzE4XTwtImRpYXMiDQojbmFtZXMoZGF0YWcpWzE3XTwtImRpYXMiDQojZGF0YWclPiVncm91cF9ieSh6cyklPiVzdW1tYXJpc2UoRGlhcnJoPXN1bShEaWFycl9zZXYxK0RpYXJyX3NldjIrZGlhcyxuYS5ybT1UKSktPnANCiNwJGRlbnNpdHk8LWNsdXMkZGVuc2l0eQ0KI2dncGxvdChwLGFlcyh4PXpzLHk9RGlhcnJoLGZpbGw9ZGVuc2l0eSkpK2dlb21fYmFyKHN0YXQ9J2lkZW50aXR5Jyxjb2w9InRvbWF0byIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9RGlhcnJoKSxjZXg9Myx2anVzdD0yKQ0KDQojYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKERpYXJyaD1zdW0oRGlhcnJfc2V2MStEaWFycl9zZXYyK0RpYXJyaCtkaWFzKSktPnANCg0KI2dncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1EaWFycmgpKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsZmlsbD0ibGlnaHRibHVlIixjb2w9InRvbWF0byIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9RGlhcnJoKSxjZXg9Myx2anVzdD0yKQ0KDQpgYGANCg0KDQoNCmBgYHtyfQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjI1NTQzIiksYygiMjU0ODYiKSxjKCIxMDAuMiIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSIpKQ0KDQpgYGANCg0KDQombmJzcDsNCg0Kb24gcmVtYXJxdWUgcXUnaWwgeSBhIHVuZSBkaW1pbnV0aW9uIGRlIDExJSBkdSBub21icmUgZGUgY2FzIGRlIGRpYXJyaMOpZSB0cmFpdMOpICBwYXIgcmFwcG9ydCBhdSBtb2lzIGRlIETDqWNlbWJyZSBhdmVjIGRlcyBaUyBxdWkgb250IHJhcHBvcnTDqSBwbHVzIGRlIGNhczpLYXlhbWJhLE11bG9uZ28sIEtpbmtvbmRqYSxNYWxlbWJhLEtpdGVuZ2UgZXQgQnVrYW1hLiBMYSBaUyBkZSBLYXlhbWJhIGVzdCBsYSBwbHVzIGF0dGVpbnRlIHNpIG9uIHJhcHBvcnRlIHNlcyBkb25uw6llcyDDoCBsYSBwb3B1bGF0aW9uKDQ2LzEwMDAwIGNhcyBkZSBEaWFycmjDqWUgYWxvcnMgcXVlIE11bG9uZ28gbidhIHF1ZSAzNi8xMDAwMCkgIA0KDQpMZXMgWlMgcXVpIG9udCByYXBwb3J0w6kgbW9pbnMgZGUgY2FzIHNvbnQgS2luZGEsQmFrYSxMd2FtYmEsQnV0dW1iYSBldCBNdWthbmdhLg0KDQombmJzcDsNCg0KKipSZWFsaXNhdGlvbnM6KioNCmlsIHkgYSBldSBmb3JtYXRpb24gZGVzIGZvcm1hdGV1cnMgcHJvdmluY2lhdXggZXQgw6lnYWxlbWVudCBmb3JtYXRpb24gZGUgcXVlbHF1ZXMgcHJlc3RhdGFpcmVzIGVuIFBDSU1FIGV0IGVuIG9yZGlub2dyYW1tZXMuIA0KDQombmJzcDsNCiZuYnNwOw0KDQoNCi0JKipOdW1iZXIgb2YgY2hpbGRyZW4gbGVzcyB0aGFuIDEyIG1vbnRocyBvZiBhZ2Ugd2hvIHJlY2VpdmVkIHRocmVlIGRvc2VzIG9mIHBlbnRhdmFsZW50IHZhY2NpbmUgWzkgZmVlIHByb3h5XSoqDQombmJzcDsNCmBgYHtyfQ0KYTwtZGF0YWcNCmEkUGVudGE8LXJvd1N1bXMoYVssMjY6MjhdKQ0KYTwtYWdncmVnYXRlKGFbLGMoMjYsbmNvbChhKSldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0sbmEucm09VCkNCmEkY2libGU8LXJvdW5kKGNpYmxlJERUQ19IZXBCLzEyKQ0KdG90MihhKQ0KdG90YWxbLDJdPC1OVUxMDQp0b3RhbCRwZXJjZW50PC1yb3VuZCh0b3RhbCRQZW50YSoxMDAvdG90YWwkY2libGUsMCkNCmtuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQpgYGANCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMzA2NTIiKSxjKCIzMTM1MyIpLGMoIjk3LjgiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYGBgDQoNCiZuYnNwOyAgDQombmJzcDsgIA0Kb24gbm90ZSB1bmUgcmVncmVzc2lvbiBkZSAzJSBwYXIgcmFwcG9ydCBhIGxhIHByb3BvcnRpb24gZHUgbW9pcyBkZSBEw6ljZW1icmUsIGxlcyBaUyBkZSBLaW5kYSBldCBLYW5pYW1hIG9udCB1bmUgZmFpYmxlIGNvbXBsw6l0dWRlIGRhbnMgbGUgREhJUzIuICANCkxlcyBaUyBxdWkgb250IGJlYXVjb3VwIHZhY2NpbsOpIHNvbnQgS2FtaW5hLEtheWFtYmEsTHdhbWJhLCBNYWxlbWJhIGV0IEtpbmtvbmRqYSAgDQpMZXMgWlMgcXVpIG9udCBtb2lucyB2YWNjaW7DqSBzb250OiBLaW5kYSxLYW5pYW1hLCBCYWthIGV0IEtpdGVuZ2UuICANCg0KJm5ic3A7DQoNCi0JKipQZXJjZW50IG9mIGNoaWxkcmVuIGxlc3MgdGhhbiAxMiBtb250aHMgb2YgYWdlIHdobyByZWNlaXZlZCBtZWFzbGVzIHZhY2NpbmUgZnJvbSBVU0ctc3VwcG9ydGVkIHByb2dyYW1zIFsxMF0qKg0KDQombmJzcDsNCg0KYGBge3J9DQphPC1kYXRhZw0KYSRWQVI8LXJvd1N1bXMoYVssNDE6NDNdKQ0KYTwtYWdncmVnYXRlKGFbLGMoNDEsbmNvbChhKSldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQphJGNpYmxlPC1yb3VuZChjaWJsZSRWQVIvMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCnRvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJFZBUioxMDAvdG90YWwkY2libGUsMCkNCmtuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQpgYGANCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMzE0MDgiKSxjKCIzMDE2OCIpLGMoIjk2LjEiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYGBgDQoNCiZuYnNwOyAgDQoNCkxlcyByw6lzdWx0YXRzIGRlIGphbnZpZXIgZGVwYXNzZW50IGNldXggIGRlIETDqWNlbWJyZSBkZSAyJS4gIA0KTGVzIFpTIHF1aSBvbnQgZXUgdW5lIGJvbm5lIGNvdXZlcnR1cmUgc29udDpTb25nYSxCdWthbWEsTXVsb25nbyxNYWxlbWJhIGV0IEtheWFtYmEuICANCg0KTGVzIFpTIG1vaW5zIHBlcmZvcm1hbnRlcyBzb250OktpbmRhLEJha2EsTHdhbWJhIGV0IEthbmlhbWEuICANCg0KJm5ic3A7DQombmJzcDsNCg0KLSAqKlBlcmNlbnRhZ2Ugb2YgcHJlZ25hbnQgd29tZW4gYXR0ZW5kaW5nIGF0IGxlYXN0IG9uZSBhbnRlbmF0YWwgY2FyZSAoQU5DKSB2aXNpdCB3aXRoIGEgc2tpbGxlZCAgcHJvdmlkZXIgZnJvbSBVU0ctIHN1cHBvcnRlZCBoZWFsdGggZmFjaWxpdGllcyoqDQoNCiZuYnNwOw0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCI5MSIpLGMoIjM3NTE4IiksYygiNDEyNDUiKSxjKCIxMDAiKSxjKCI5MSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiTnVtZXJhdG9yIiwiRGVub21pbmF0b3IiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUoJSkiKSkNCg0KYGBgDQoNCiZuYnNwOyAgDQombmJzcDsgIA0KDQombmJzcDsNCg0KLQkqKlBlcmNlbnRhZ2Ugb2YgcHJlZ25hbnQgd29tZW4gYXR0ZW5kaW5nIGF0IGxlYXN0IG9uZSBhbmQgYXQgbGVhc3QgNCBhbnRlbmF0YWwgY2FyZSAoQU5DKSB3aXRoIGEgc2tpbGxlZCBwcm92aWRlciBmcm9tIFVTRy1zdXBwb3J0ZWQgaGVhbHRoIGZhY2lsaXRpZXMgWzEyIGZlZV0qKg0KJm5ic3A7DQpgYGB7cn0NCmE8LWRhdGFnDQphJENQTl80PC1hWyw0XQ0KYTwtYWdncmVnYXRlKGFbLGMoNCxuY29sKGEpKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LXJvdW5kKGNpYmxlJENQTjQvMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCnRvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJENQTl80KjEwMC90b3RhbCRjaWJsZSwwKQ0Ka25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NyJykNCg0KYGBgDQoNCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMTk4NjAiKSxjKCIxNzg5NyIpLGMoIjExMSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSIpKQ0KDQpgYGANCg0KJm5ic3A7DQoNCmlsIHkgYSB1bmUgZGltaW51dGlvbiBkZSAzJSBwYXIgcmFwcG9ydCBhdSBtb2lzIGRlIETDqWNlbWJyZSwgbGVzIFpTIGF5YW50IHVuIGZvcnQgdGF1eCBkZSBjb3V2ZXJ0dXJlIGVuIENQTiBzb250Okx3YW1iYSxCdWthbWEsS2l0ZW5nZSwgS2F5YW1iYSBldCBLYW1pbmEuICANCkxlcyBaUyBtb2lucyBwZXJmb3JtYW50ZXMgc29udDpLaW5kYSxCYWthLEx3YW1iYSBldCBTb25nYSAgDQoNCg0KLQkqKlBlcmNlbnRhZ2Ugb2YgZGVsaXZlcmllcyB3aXRoIGFuIFNCQSBpbiBVU0ctc3VwcG9ydGVkIGZhY2lsaXRpZXMqKiAgDQoNCmBgYHtyfQ0KYTwtZGF0YWcNCmEkQWNjPC1hWyw4XQ0KYTwtYWdncmVnYXRlKGFbLGMoOCwzNyxuY29sKGEpKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCnRvdDIoYSkNCnRvdGFsJEFjY19QPC1yb3VuZCh0b3RhbCRBY2MqMTIwMC8odG90YWxbLDNdKi4wNCksMCkNCnRvdGFsJGNpYmxlNDwtcm91bmQodG90YWxbLDNdKi4wNC8xMikNCnRvdGFsWywyOjNdPC1OVUxMDQp0b3RhbCRjaWJsZT05MA0KdG90YWw8LXRvdGFsWyxjKDEsMiw0LDUsMyldDQoja25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIk1vaXMiLCJBY2NBc3Npc3QiLCJDaWJsZTQiLCJDaWJsZTkwIiwiJSIpKQ0KYGBgDQoNCg0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCI3NiIpLGMoIjMxMzY0IiksYygiNDEyNDUiKSxjKCI5MCIpLGMoIjg0LjUiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJRMSBBY2hpZXZlbWVudCIsIk51bWVyYXRvciIsIkRlbm9taW5hdG9yIiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlIikpDQoNCmBgYA0KDQombmJzcDsNCg0KJm5ic3A7DQoNCi0JKipOdW1iZXIgb2Ygd29tZW4gZ2l2aW5nIGJpcnRoIHdobyByZWNlaXZlZCB1dGVyb3RvbmljcyBpbiB0aGUgdGhpcmQgc3RhZ2Ugb2YgbGFib3IgKE9SIGltbWVkaWF0ZWx5IGFmdGVyIGJpcnRoKSB0aHJvdWdoIFVTRy1zdXBwb3J0ZWQgcHJvZ3JhbXMgWzIuMS40XSoqDQoNCiZuYnNwOw0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIxNTg0IiksYygiMjE3OCIpLGMoIjcyLjciKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYGBgDQoNCg0KYGBge3J9DQphPC1kYXRhZw0KYSRHYXRwYTwtYVssOV0NCmE8LWFnZ3JlZ2F0ZShhWyxjKDksbmNvbChhKSldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQphJGNpYmxlPC1yb3VuZChjaWJsZSRHYXRwYS8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkR2F0cGEqMTAwL3RvdGFsJGNpYmxlLDApDQprbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KYGBgDQoNCiZuYnNwOw0KDQombmJzcDsNCg0Kb24gbm90ZSBxdWUgbGUgbm9tYnJlIGRlcyBmZW1tZXMgcXVpIG9udCByZcOndSBsYSBHYXRwYSBhdWdtZW50ZSBlbiBEw6ljZW1icmUgIGV0IGVuIGphbnZpZXIsIGxlcyBaUyBxdWkgb250IHJhcHBvcnTDqSBsZSBwbHVzIGRlIGNhcyBzb250OiBLaXRlbmdlLEJ1a2FtYSxLYW5pYW1hLCBLYWJvbmdvLiBLYWJvbmdvIGV0IEJ1a2FtYSBvbnQgdW4gaW1wb3J0YW50IHBvaWQgZGVtb2dyYXBoaXF1ZSB0YW5kaXMgcXVlIHBvdXIgS2l0ZW5nZSBldCBLYW5pYW1hLCBkJ2F1dHJlcyBmYWN0ZXVycyBmYXZvcmlzYW50cyBkb2l2ZW50IMOqdHJlIHJlY2hlcmNow6lzLg0KDQoNCi0JKipOdW1iZXIgYW5kIHBlcmNlbnRhZ2Ugb2YgbmV3Ym9ybnMgcmVjZWl2aW5nIGVzc2VudGlhbCBuZXdib3JuIGNhcmUgdGhyb3VnaCBVU0ctc3VwcG9ydGVkIHByb2dyYW1zKioNCg0KYGBge3J9DQphPC1kYXRhZw0KYSRTb2luc19lc3M8LWFbLDM4XQ0KYTwtYWdncmVnYXRlKGFbLGMoMTEsMzgsbmNvbChhKSldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQp0b3QyKGEpDQp0b3RhbCRjaWJsZTwtMTAwDQp0b3RhbCRTb2Vzc19QPC1yb3VuZCh0b3RhbCRTb2luc19lc3MqMTAwL3RvdGFsWywyXSkNCnRvdGFsWywzXTwtTlVMTA0KdG90YWwkY2libGU9MTAwDQprbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiTW9pcyIsIk5haXNzVml2IiwiU29pbnNFc3MiLCJDaWJsZSIsIiUiKSkNCmBgYA0KDQoNCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiOTAiKSxjKCIxMDAiKSxjKCI4OS45IikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlIikpDQoNCmBgYA0KDQombmJzcDsNCg0KaWwgeSBhIHVuZSBhdWdtZW50YXRpb24gZGUgMiUgcGFyIHJhcHBvcnQgw6AgRMOpY2VtYnJlIDIwMTksIHBhcm1pIGxlcyBaUyBxdWkgb250IHJhcHBvcnTDqSBwbHVzIGRlIGNhcyBpbCB5IGE6IEx3YW1iYSxNYWxlbWJhLEtpdGVuZ2UsS2lua29uZGphLEtheWFtYmEuICANCkxlcyBaUyBtb2lucyBwZXJmb3JtYW50ZXMgc29udDpLaW5kYSxLYWJvbmRvIERpYW5kYSxCdXR1bWJhLEthbmlhbWEgIA0KDQombmJzcDsNCiZuYnNwOw0KDQoNCi0JKipOdW1iZXIgb2YgcG9zdHBhcnR1bS9uZXdib3JuIHZpc2l0cyB3aXRoaW4gdGhyZWUgZGF5cyBvZiBiaXJ0aCBpbiBVU0ctc3VwcG9ydGVkIHByb2dyYW1zIFsyLjEuNl0qKg0KDQpgYGB7cn0NCmE8LWRhdGFnDQphJENQT05fMTwtYVssMzddDQphPC1hZ2dyZWdhdGUoYVssYygzNyxuY29sKGEpKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LXJvdW5kKGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKGNpYmxlJENQb04xKSkvMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCnRvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJENQT05fMSoxMDAvdG90YWwkY2libGUsMCkNCmtuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQpgYGANCg0KJm5ic3A7DQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIyODAyOCIpLGMoIjIzNTU5IiksYygiMTE5IikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlKCUpIikpDQoNCmBgYA0KDQombmJzcDsNCmlsIHkgYSB1bmUgcmVncmVzc2lvbiBkZSA2JSBwYXIgcmFwcG9ydCBhdSBtb2lzIHByw6ljZWRlbnQsIGF2ZWMgZGVzIFpTIHBsdXMgcGVyZm9ybWFudGVzIChMd2FtYmEsS2F5YW1iYSxLaXRlbmdlLEJha2EpIGV0IGxlcyBaUyBxdWkgb250IHVuIGZhaWJsZSB0YXV4KEthYm9uZG8sIEJ1dHVtYmEsS2FuaWFtYSkgIA0KDQombmJzcDsNCg0KLQkqKkRyb3Atb3V0IHJhdGUgaW4gRFRQLUhlcEItSGliMyBhbW9uZyBjaGlsZHJlbiBsZXNzIHRoYW4gMTIgbW9udGhzIG9mIGFnZSBbMi4xLjldKioNCg0KJm5ic3A7DQoNCmBgYHtyfQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjIuMyIpLGMoIjQiKSxjKCIxNDIuOCIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSglKSIpKQ0KDQpgYGANCg0KJm5ic3A7ICANCg0KJm5ic3A7DQombmJzcDsNCiZuYnNwOw0KDQojIyBOVVRSSVRJT04NCg0KLQlOdW1iZXIgb2YgaW5kaXZpZHVhbHMgcmVjZWl2aW5nIG51dHJpdGlvbi1yZWxhdGVkIHByb2Zlc3Npb25hbCB0cmFpbmluZyB0aHJvdWdoIFVTRyBzdXBwb3J0ZWQgbnV0cmlvbiBwcm9ncmFtcyBbMi4xLjEwXQ0KDQotCU51bWJlciBvZiBjaGlsZHJlbiB1bmRlci1maXZlICgwLTU5IG1vbnRocykgcmVhY2hlZCBieSBVU0ctc3VwcG9ydGVkIG51dHJpdGlvbiBwcm9ncmFtcyBbMi4xLjExXQ0KDQombmJzcDsNCmBgYHtyfQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjM1MzA5MSIpLGMoIjE1ODQ1NiIpLGMoIjQ0LjkiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUoJSkiKSkNCg0KYGBgDQoNCg0KYGBge3J9DQphPC1kYXRhZw0KYSROdXRyaXRpb248LWFbLDQwXQ0KYTwtYWdncmVnYXRlKGFbLGMoNDAsbmNvbChhKSldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQphJGNpYmxlPC1yb3VuZChjaWJsZSROdXRyX2Nwcy8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkTnV0cml0aW9uKjEwMC90b3RhbCRjaWJsZSwwKQ0Ka25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NyJykNCmBgYA0KDQombmJzcDsNCg0KdW5lIGzDqWfDqHJlIGF1Z21lbnRhdGlvbiBkZXMgZW5mYW50cyB2dXMgYSBsYSBEUFMgYSDDqXTDqSBvYnNlcnbDqWUgZW4gamFudmllciBwYXIgcmFwcG9ydCDDoCBEw6ljZW1icmUsIGNlIHBow6lub23DqG5lIHBldXQgw6p0cmUgY29ycmVsw6kgcG9zaXRpdmVtZW50IGF2ZWMgbCdhdWdtZW50YXRpb24gZGUgY2FzIGRlIHBhbHVkaXNtZSBkYW5zIGNldHRlIHRyYW5jaGUuDQoNCg0KJm5ic3A7DQombmJzcDsNCiZuYnNwOw0KDQojIyBSRVBST0RVQ1RJVkUgSEVBTFRIL0ZBTUlMWSBQTEFOTklORw0KDQombmJzcDsNCg0KLQkqKk51bWJlciBvZiBuZXcgYWNjZXB0b3JzIHVzaW5nIG1vZGVybiBjb250cmFjZXB0aXZlIG1ldGhvZHMgaW4gVVNHLXN1cHBvcnRlZCBmYWNpbGl0aWVzIFszIGZlZSBwcm94eV0qKg0KDQpgYGB7cn0NCmE8LWRhdGFnDQphJEFjY2VwdDwtKGFbLDEyXSkNCmE8LWFnZ3JlZ2F0ZShhWyxjKDEyLG5jb2woYSkpXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtKQ0KYSRjaWJsZTwtcm91bmQoY2libGUkTmxsZV9hY2NlcHQvMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCnRvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJEFjY2VwdCoxMDAvdG90YWwkY2libGUsMCkNCmtuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQoNCmBgYA0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIzMzM3MiIpLGMoIjIwNDA1IiksYygiMTYzLjUiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUoJSkiKSkNCg0KYGBgDQoNCiZuYnNwOw0KDQpPbiBub3RlIHVuZSBhdWdlbWVudGF0aW9uIGRlIG5vdXZlbGxlcyBhY2NlcHRhbnRlcyBkZSAyIiUgcGFyIHJhcHBvcnQgZW4gRMOpY2VtYnJlLCBsZXMgWlMgcGx1cyBwZXJmb3JtYW50ZXMgc29udDogS2Fib25nbywgS2l0ZW5nZSwgTXVsb25nbyBldCBNYWxlbWJhLg0KY2VwZW5kYW50IGNlcnRhaW5lcyBaUyBvbnQgw6l0w6kgbW9pbnMgcGVyZm9ybWFudGVzIHRlbCBxdWU6IEJha2EsS2Fib25kb0QsQnV0dW1iYSBldCBLaW5kYS4gDQoNCg0KJm5ic3A7DQoNCi0JKipOdW1iZXIgb2YgY291bnNlbGluZyB2aXNpdHMgZm9yIEZQLyBSSCBhcyByZXN1bHQgb2YgVVNHIHN1cHBvcnQgWzIuM10qKg0KDQoNCiMjIFRVQkVSQ1VMT1NJUw0KDQotCVRCIG5vdGlmaWNhdGlvbiByYXRlIHRocm91Z2ggVVNHLSBzdXBwb3J0ZWQgcHJvZ3JhbXMgWzIuMS4xN10NCg0KLQlOdW1iZXIgb2YgbXVsdGktZHJ1ZyByZXNpc3RhbnQgVEIgKE1EUi1UQikgY2FzZXMgZGV0ZWN0ZWQgWzIuMS4yMF0NCg0KIyMgV0FURVIsIFNBTklUQVRJT04sIEFORCBIWUdJRU5FDQoNCi0JTnVtYmVyIG9mIHBlb3BsZSBnYWluaW5nIGFjY2VzcyB0byBiYXNpYyBkcmlua2luZyB3YXRlciBzZXJ2aWNlcyBhcyBhIHJlc3VsdCBvZiBVU0cgYXNzaXN0YW5jZSBbMi42LjJdDQoNCi0JTnVtYmVyIG9mIHBlb3BsZSBnYWluaW5nIGFjY2VzcyB0byBhIGJhc2ljIHNhbml0YXRpb24gc2VydmljZSBhcyBhIHJlc3VsdCBvZiBVU0cgYXNzaXN0YW5jZSBbMi42LjNdDQoNCiMgNC5SRVBPUlRJTkcgQlkgUFJPR1JBTSBBQ1RJVklUSUVTDQoNCg0KIA0KIyMgT0JKRUNUSVZFIDE6IFNUUkVOR1RIRU4gSEVBTFRIIFNZU1RFTVMsIEdPVkVSTkFOQ0UsIEFORCBMRUFERVJTSElQIEFUIFBST1ZJTkNJQUwsIEhFQUxUSCBaT05FLCBBTkQgRkFDSUxJVFkgTEVWRUxTIElOIFRBUkdFVCBIRUFMVEggWk9ORVMNCg0KTCdvYmplY3RpZiBJIGEgOCByZXN1bHRhdHMgaW50ZXJtZWRpYWlyZXMoSVIpLGxlIHRhYmxlYXUgc3VpdmFudCByZXByZW5kIGxlIG5vbWJyZSBkJ2FjdGl2aXRlcyByZWFsaXNlZXMgYWluc2kgcXVlIGxlIHRhdXggZGUgcmVhbGlzYXRpb24gcmFwcG9ydGUgYSBjaGFxdWUgSVI6DQoNCg0KDQoNCmBgYHtyfQ0KYTwtcmVhZC5jc3YoIkZpbmFuY2UuY3N2IikNCmElPiVmaWx0ZXIoTW9udGg9PSJGZXZyaWVyIiklPiVncm91cF9ieShSZWdpb24sSVIsT2JqZWN0aXZlKSU+JXN1bW1hcmlzZShSZWFsPXN1bShFeGVjdXRlKSxjb3Vycz1zdW0oRW4uY291cnMpKSU+JW11dGF0ZShBY3Rpdml0ZXM9UmVhbCtjb3VycyklPiVmaWx0ZXIoUmVnaW9uPT0iSGF1dCBMbyImIE9iamVjdGl2ZT09Ik8xIiklPiVzZWxlY3QoSVIsQWN0aXZpdGVzLFJlZ2lvbiklPiVkYXRhLmZyYW1lKCktPmQNCg0KYjwtcmVhZC5jc3YoIldQIEhMLmNzdiIpDQpiPC1zdWJzZXQoYixNb250aD09IkZlYiIsc2VsZWN0PWMoTG9nLEFjdGl2aXRlcyxvcCkpDQpiPC1iW2IkTG9nJWluJXBhc3RlMCgiSVIgMS4iLDE6OCksXQ0KZTwtdGFibGUoYlssMV0pDQpkJFdQPC1lWzE6OF0NCg0KZCU+JXNlbGVjdChJUixXUCxBY3Rpdml0ZXMpJT4lbXV0YXRlKFJhdGU9cm91bmQoQWN0aXZpdGVzKjEwMC9XUCkpLT5kDQprbml0cjo6a2FibGUoZCwicGFuZG9jIixhbGlnbj0ibGNjciIpDQpgYGANCg0KRW4gZ2VuZXJhbGUsICBhY3Rpdml0ZXMgb250IGV0ZSByZWFsaXNlZSBzdXIgIHByZXZ1ZXMgZGFucyBsZSBXUC4gYXVjdW5lIGFjdGl2aXRlcyBkZSAxLjMgbidhdmFpdCBldGUgcGxhbmlmaWVlIHBhcmNlIHF1ZSBCQSBuJ2EgcGFzIGVuY29yZSBmb3JtZS5hdXggZGUgcmVhbGlzYXRpb24gZGUgMzElLiANCg0KcGFybWkgbGVzIElSIG91IGF1Y3VuZSBhY3Rpdml0ZSBuJ2EgZXRlIGZhaXRlIG5vdG9ucyBsZSAxLjMgZXQgbGUgMS42LiBsYSByZWFsaXNhdGlvbiBkZXMgYWN0aXZpdGVzIGRhbnMgbCdJUiAxLjYgDQoNCg0KIyMjIFJJIEkuMTogQ2FwYWNpdMOpIGFjY3J1ZSBkZSBwbGFuaWZpZXIsIGQnb2ZmcmlyIGxlcyBzZXJ2aWNlcyBldCBkJ2VuIGZhaXJlIGxlIHN1aXZpIGV0IGwnw6l2YWx1YXRpb24gYXUgbml2ZWF1IGRlcyBwcm92aW5jZXMsIGRlcyB6b25lcyBkZSBzYW50w6kgZXQgZGVzIGZvcm1hdGlvbnMgc2FuaXRhaXJlcyBkYW5zIGxlcyB6b25lcyBkZSBzYW50w6kgY2libMOpZXMNCg0KRGFucyBjZXQgSVIsIDUgYWN0aXZpdGVzIG9udCBldGUgcmVhbGlzZWVzIGRvbnQgdm9pY2kgbGEgc3ludGhlc2UNCg0KMS4gKkNvbmR1aXJlIGxlcyBhbmFseXNlcyBpbnN0aXR1dGlvbm5lbGxlcyBkYW5zIHF1ZWxxdWVzIFpTKiAgDQoNCkF1IGNvdXJzIGRlIGxhIHDDqXJpb2RlLCBQUk9TQU5JIFVTQUlEIGEgYXBwdXnDqSB0ZWNobmlxdWVtZW50IGV0IGZpbmFuY2nDqHJlbWVudCBs4oCZb3JnYW5pc2F0aW9uIGRlIGzigJlhbmFseXNlIGluc3RpdHV0aW9ubmVsbGUgZGUgbGEgWlMgS2FtaW5hIGF2ZWMgbOKAmW91dGlsIFBJQ0FMIGFkYXB0w6kgYXV4IFpTLiBEdSA0IGF1IDE1IGbDqXZyaWVyLCBjZXR0ZSBhY3Rpdml0w6kgYSBkw6lidXTDqSBwYXIgbGEgZm9ybWF0aW9uIGRlIDYgRVBQIGRlIGxhIERQUyBIYXV0LUxvbWFtaSBzdXIgbOKAmW91dGlsIFBJQ0FMIGFkYXB0w6kgYXV4IFpTIHBlbmRhbnQgcXVhdHJlIGpvdXJzIHBvdXIgbGEgY29uZHVpdGUgZGVzIGFuYWx5c2VzIGluc3RpdHV0aW9ubmVsbGVzIGRhbnMgbGVzIFpTIGRlIGxhIHByb3ZpbmNlLiBFbnN1aXRlIGR1IDggYXUgMTUgRsOpdnJpZXIsIGxhIHByZW1pw6hyZSBhbmFseXNlIGluc3RpdHV0aW9ubmVsbGUgZGVzIFpTIGEgw6l0w6kgcsOpYWxpc8OpZSBkYW5zIGxhIFpTIEthbWluYS4gDQoNCiZuYnNwOw0KJm5ic3A7DQoNCjIuICpGb3JtZXIgbGVzIGNhZHJlcyBkZSBsYSBEUFMgZXQgZGUgbCdJUFMgc3VyIGxlcyB0ZWNobmlxdWVzIGRlIGNvYWNoaW5nIHkgY29tcHJpcyBsZXMgYXNwZWN0cyBnZW5yZSogDQombmJzcDsNCg0KRHUgMTcgYXUgMjEgRsOpdnJpZXIsIFBST1NBTkkgVVNBSUQgYSBhcHB1ecOpIHRlY2huaXF1ZW1lbnQgZXQgZmluYW5jacOocmVtZW50IGxhIGZvcm1hdGlvbiBkZXMgw6lxdWlwZXMgY2FkcmVzIGRlIGxhIERQUyBldCBkZSBs4oCZSVBTIGFpbnNpIHF1ZSA1IHN0YWZmcyBkZSBQUk9TQU5JIFVTQUlEIHN1ciBsZXMgdGVjaG5pcXVlcyBkZSBjb2FjaGluZy4gQXUgdG90YWwgMzIgcGVyc29ubmVzIG9udCDDqXTDqSBmb3Jtw6llcyBwZW5kYW50IDUgam91cnMgc3VyIGRlcyBhcHByb2NoZXMganVnw6llcyBpbm5vdmFudGVzIHBhciB0b3VzIGxlcyBwYXJ0aWNpcGFudHMgcG91ciBsZSBsZWFkZXJzaGlwIGRhbnMgbGV1ciB2aWUgcHJvZmVzc2lvbm5lbGxlLiANCiANCiAmbmJzcDsNCiAmbmJzcDsNCg0KMy4gKkNvbnRyaWJ1ZXIgYXV4IGZyYWlzIGRlIGZvbmN0aW9ubmVtZW50IGRlIGxhIERQUyoNCg0KJm5ic3A7DQombmJzcDsNCg0KDQoNCjQuICpDb250cmlidWVyIGF1eCBmcmFpcyBkZSBmb25jdGlvbm5lbWVudCBkZSBxdWVscXVlcyBaUyAqDQoNCiZuYnNwOw0KJm5ic3A7DQoNCg0KDQojIyMgUkkgSS4yOiBBbcOpbGlvcmF0aW9uIGRlIGxhIHRyYW5zcGFyZW5jZSBldCBkdSBjb250csO0bGUgZHUgZmluYW5jZW1lbnQgZXQgZGUgbCdhZG1pbmlzdHJhdGlvbiBkZXMgc2VydmljZXMgZGUgc2FudMOpIGF1IG5pdmVhdSBkZXMgcHJvdmluY2VzLCBkZXMgem9uZXMgZGUgc2FudMOpIGV0IGRlcyBmb3JtYXRpb25zIHNhbml0YWlyZXMNCg0KRGV1eCBhY3Rpdml0ZXMgb250IGV0ZSBmYWl0IGRhbnMgY2V0IElSOg0KDQoxLiAqQ29udHJpYnVlciBhdXggZnJhaXMgZGUgZm9uY3Rpb25uZW1lbnQgZGUgbOKAmUlQUyoNCg0KICZuYnNwOw0KICZuYnNwOw0KDQoNCjIuICpBcHB1eWVyIGxlcyBtaXNzaW9ucyB0cmltZXN0cmllbGxlcyBkZXMgSVBTIGVuIGF1ZGl0IGV0IGNvbnRyw7RsZSBkZSBaUy9EUFMuKg0KDQogJm5ic3A7DQogJm5ic3A7DQoNCg0KIyMjIFJJIDEuNTogQW3DqWxpb3JhdGlvbiBkZSBsYSBzdXJ2ZWlsbGFuY2UgZGVzIG1hbGFkaWVzIGV0IGRlIGxhIGNvbGxlY3RlIGV0IGRlIGwndXRpbGlzYXRpb24gZCdpbmZvcm1hdGlvbnMgc3RyYXTDqWdpcXVlcw0KDQoxLiAqQXNzdXJlciBsYSBjb25uZXhpb24gaW50ZXJuZXQgZGUgbGEgRFBTIGV0IGRlcyBaUyAoQWNoYXQgbcOpZ2FieXRlcyBwb3VyIDNHIGV0IDRHIG91IGNvbm5leGlvbiBWLVNhdCkqICANCg0KTGEgY29ubmV4aW9uIGludGVybmV0IGEgw6l0w6kgZm91cm5pZSBhdXggMTYgWlMgYWluc2kgcXXigJnDoCBsYSBEUFMsIGxlIHByb2Nlc3N1cyBk4oCZYWN0aXZhdGlvbiBkZSBWc2F0IGVzdCBhdXNzaSBlbiB2b2llIGTigJnDqnRyZSDDqXR1ZGnDqSBwb3VyIHNhIG1pc2UgZW4gxZN1dnJlLiAgDQogJm5ic3A7DQogJm5ic3A7DQoNCjIuICpBcHB1eWVyIHRlY2huaXF1ZW1lbnQgZXQgZmluYW5jacOocmVtZW50IGxlcyByw6l1bmlvbnMgZGUgc3VydmVpbGxhbmNlIE1BUEVQSSBwYXJ0aWN1bGllcmVtZW50IGxhIE1WRSoNCg0KTGVzIHJldW5pb25zIE1BUEVQSSBvbnQgZXRlIHRlbnVlcyBhIGxhIDZlbWUgZXQgOCBlbWUgc2VtYWluZSBhdSBtb2lzIGRlIGZldnJpZXIgYXZlYyBsJ2FwcHVpIGRlIFBST1NBTkkgVVNBSUQuIGNlIG1vaXMgYSBldGUgY2FyYWN0ZXJpc2UgcGFyIHVuZSBlcGlkZW1pZSBkZSByb3VnZW9sZSBhIFNvbmdhIGV0IHVuZSBhdWdtZW50YXRpb24gZHUgbm9tYnJlIGRlIGNhcyBkZSBwYWx1ZGlzbWUgZGFucyBsYSBaUyBkZSBCdWthbWEuDQoNCiZuYnNwOw0KJm5ic3A7DQoNCjMuICpBcHB1eWVyIGZpbmFuY2nDqHJlbWVudCBsZXMgcsOpdW5pb25zIG1lbnN1ZWxsZXMgZGUgbW9uaXRvcmFnZSBhdSBuaXZlYXUgZGVzIFpTKg0KDQombmJzcDsNCiZuYnNwOw0KDQo0LiAqUmVwcm9kdWlyZSBsZXMgb3V0aWxzIGRlIGdlc3Rpb24gZGVzIEZvU2EgKGxlcyByZWdpc3RyZXMsIGZpY2hlcywgY2FuZXZhcyByYXBwb3J0cywgZXQgYXV0cmVzKSoNCg0KJm5ic3A7DQombmJzcDsNCg0KIyMjIDEuNzogRGlzcG9uaWJpbGl0w6kgYWNjcnVlIGRlcyBtw6lkaWNhbWVudHMgZXNzZW50aWVscyBhdSBuaXZlYXUgZGVzIHByb3ZpbmNlcywgZGVzIHpvbmVzIGRlIHNhbnTDqSBldCBkZXMgZm9ybWF0aW9ucyBzYW5pdGFpcmVzDQombmJzcDsNCiZuYnNwOw0KKlBhcnRpY2lwZXIgYXV4IHLDqXVuaW9ucyBkZSBDb29yZGluYXRpb24gU3VwcGx5IENoYWluIGF2ZWMgR0hTQy1UQSoNCg0KJm5ic3A7DQombmJzcDsNCg0KDQojIyMgMS44OiBDb2xsYWJvcmF0aW9uIHJlbmZvcmPDqWUNCiAmbmJzcDsNCiAmbmJzcDsNCipGaW5hbmNlciBsJ29yZ2FuaXNhdGlvbiBldCBsYSB0ZW51ZSByw6lndWxpw6hyZSBkZXMgcsOpdW5pb25zIGRlIENPR0UgZGFucyBxdWVscXVlcyBaUyoNCg0KICZuYnNwOw0KICZuYnNwOw0KIA0KIyMgT2JqZWN0aWYgMjogQWNjcm/DrnRyZSBsJ2FjY8OocyDDoCBkZXMgc2VydmljZXMgZGUgc2FudMOpIGludMOpZ3LDqXMgZXQgZGUgcXVhbGl0w6kgZGFucyBsZXMgem9uZXMgZGUgc2FudMOpIGNpYmzDqWVzDQoNCiZuYnNwOw0KJm5ic3A7DQoNCmBgYHtyfQ0KYTwtcmVhZC5jc3YoIkZpbmFuY2UuY3N2IikNCmElPiVmaWx0ZXIoTW9udGg9PSJGZXZyaWVyIiklPiVncm91cF9ieShSZWdpb24sSVIsT2JqZWN0aXZlKSU+JXN1bW1hcmlzZShSZWFsPXN1bShFeGVjdXRlKSxjb3Vycz1zdW0oRW4uY291cnMpKSU+JW11dGF0ZShBY3Rpdml0ZXM9UmVhbCtjb3VycyklPiVmaWx0ZXIoUmVnaW9uPT0iSGF1dCBMbyImIE9iamVjdGl2ZT09Ik8yIiklPiVzZWxlY3QoSVIsQWN0aXZpdGVzLFJlZ2lvbiklPiVkYXRhLmZyYW1lKCktPmQNCg0KYjwtcmVhZC5jc3YoIldQIEhMLmNzdiIpDQpiPC1zdWJzZXQoYixNb250aD09IkZlYiIsc2VsZWN0PWMoTG9nLEFjdGl2aXRlcyxvcCkpDQpmPC1iW2IkTG9nJWluJXBhc3RlMCgiSVIgMi4iLDE6NyksXQ0KZTwtdGFibGUoZiRMb2cpDQpkJFdQPC1lWzk6MTVdDQoNCmQlPiVzZWxlY3QoSVIsV1AsQWN0aXZpdGVzKSU+JW11dGF0ZShSYXRlPXJvdW5kKEFjdGl2aXRlcyoxMDAvV1ApKS0+ZA0Ka25pdHI6OmthYmxlKGQsInBhbmRvYyIsYWxpZ249ImxjY3IiKQ0KYGBgDQoNCkF1IGNvdXJzIGRlIGNldHRlIHBlcmlvZGUsLiANCg0KDQoNCiMjIyBSSSAyLjE6IERpc3BvbmliaWxpdMOpIGFjY3J1ZSBkZXMgc2VydmljZXMgZGUgc2FudMOpIGVzc2VudGllbHMgZXQgZGUgcXVhbGl0w6kgZGFucyBsZXMgZm9ybWF0aW9ucyBzYW5pdGFpcmVzDQoNCiZuYnNwOw0KJm5ic3A7DQoNCipBcHB1eWVyIGxlIHJlY3ljbGFnZSBkZXMgcHJlc3RhdGFpcmVzIHN1ciBsYSBwcsOpdmVudGlvbiBldCBsYSBQRUMgZHUgcGFsdWRpc21lIGNoZXogbGVzIGZlbW1lcyBlbmNlaW50ZXMqICANCkxlIDE0LjAyLjIwMjAgOiBQUk9TQU5JIFVTQUlEIGEgYXBwdXllIGxlIFJlY3ljbGFnZSBlbiBUUEkgZGFucyBsYSB6b25lIGRlIHNhbnTDqSBkZSBCQUtBIGF2ZWMgMTIgUGFydGljaXBhbnRzIGRvbnQgMSBzZXhlIEbDqW1pbmluLg0KDQombmJzcDsNCiZuYnNwOw0KDQoqRm9ybWVyIGxlcyBwcmVzdGF0YWlyZXMgc3VyIGxlIGRpYWdub3N0aWMgZGVzIGNhcyBkZSBzdXNwZWN0cyBkZSBwYWx1ZGlzbWUgYXZlYyBsZXMgVERSLCBldCB0cmFpdGVtZW50IGRlIGNhcyBjb25maXJtw6lzIGRlIHBhbHVkaXNtZSBzaW1wbGUgZXQgZ3JhdmUqDQoNCkR1IDAzIGF1IDA3IGZldnJpZXIgMjAyMDogIFBST1NBTkkgVVNBSUQgIGEgYXBwdXllIGxhIGZvcm1hdGlvbiBkZXMgUHJlc3RhdGFpcmVzIHN1ciBsZSBkaWFnbm9zdGljIGV0IHRyYWl0ZW1lbnQgZGUgUGFsdWRpc21lICBkYW5zIGxlcyBab25lcyBkZSBzYW50ZSBkZSBTT05HQSBldCBNVUxPTkdPLmlsIHkgYSBldSA2OCBQYXJ0aWNpcGFudHMgcXVpIG9udCDDqXTDqSBmb3Jtw6lzIGRvbnQgNTcgSG9tbWVzIGV0IDExIEZlbW1lcy4NCg0KJm5ic3A7DQombmJzcDsNCg0KKlJlbmZvcmNlciBsZXMgY2FwYWNpdMOpcyBkZXMgZm9ybWF0ZXVycyBlbiBQQ0lNTkUgZXQgb3JkaW5vZ3JhbW1lKg0KJm5ic3A7DQombmJzcDsNCipGb3JtZXIgbGVzIHByZXN0YXRhaXJlcyBkZXMgQ1MgZW4gUENJTU5FIGV0IG9yZGlub2dyYW1tZSoNCiZuYnNwOw0KJm5ic3A7DQoNCipBcHB1eWVyIGwnb3JnYW5pc2F0aW9uIGRlIGxhIHZhbGlkYXRpb24gdHJpbWVzdHJpZWxsZSBkZXMgZG9ubsOpZXMgVEIgYXUgbml2ZWF1IHByb3ZpbmNpYWwqDQoNCiZuYnNwOw0KJm5ic3A7DQoNCipGb3VybmlyIHVuIGFwcHVpIG51dHJpdGlvbm5lbCBhdXggbWFsYWRlcyBNRFIgZXQgWERSKg0KDQombmJzcDsNCiZuYnNwOw0KDQojIyMgUkkgMi42OiBBbcOpbGlvcmF0aW9uIGRlIGwnaW5mcmFzdHJ1Y3R1cmUgZXQgZGUgbCfDqXF1aXBlbWVudCBkZSBiYXNlIHBvdXIgYXNzdXJlciBkZXMgc2VydmljZXMgZGUgcXVhbGl0w6kNCg0KJm5ic3A7DQombmJzcDsNCg0KKkRvdGVyIGxlcyBmb3JtYXRpb25zIHNhbml0YWlyZXMgZGVzIG1hdGVyaWVscyBkZSBiYXNlIGRlIFBDSSAoUHJldmVudGlvbiBldCBjb250cm9sZSBkZXMgSW5mZWN0aW9ucykqDQoNCiZuYnNwOw0KJm5ic3A7DQoNCiMjIyBSSSAyLjc6IENvbGxhYm9yYXRpb24gcmVuZm9yY8OpZQ0KJm5ic3A7DQombmJzcDsNCg0KKkFwcHV5ZXIgdGVjaG5pcXVlbWVudCBldCBmaW5hbmNpw6hyZW1lbnQgbGUgZm9uY3Rpb25uZW1lbnQgZXQgbGVzIGFjdGl2aXTDqXMgZHUgQ1RNUCBQRioNCg0KJm5ic3A7DQombmJzcDsNCg0KKkFwcHV5ZXIgdGVjaG5pcXVlbWVudCBldCBmaW5hbmNpw6hyZW1lbnQgbGVzIHLDqXVuaW9ucyB0cmltZXN0cmllbGxlcyBkZSBsYSB0YXNrIGZvcmNlIFRCL1ZJSCoNCg0KJm5ic3A7DQombmJzcDsNCg0KDQojIyBPYmplY3RpZiAzOiBBY2Nyb8OudHJlIGwnYWRvcHRpb24gZGUgY29tcG9ydGVtZW50cyBzYWlucywgeSBjb21wcmlzIGwndXRpbGlzYXRpb24gZGVzIHNlcnZpY2VzIGRlIHNhbnTDqSwgZGFucyBsZXMgem9uZXMgZGUgc2FudMOpIGNpYmzDqWVzDQoNCiZuYnNwOw0KJm5ic3A7DQpgYGB7cn0NCmE8LXJlYWQuY3N2KCJGaW5hbmNlLmNzdiIpDQphJT4lZmlsdGVyKE1vbnRoPT0iRmV2cmllciIpJT4lZ3JvdXBfYnkoUmVnaW9uLElSLE9iamVjdGl2ZSklPiVzdW1tYXJpc2UoUmVhbD1zdW0oRXhlY3V0ZSksY291cnM9c3VtKEVuLmNvdXJzKSklPiVtdXRhdGUoQWN0aXZpdGVzPVJlYWwrY291cnMpJT4lZmlsdGVyKFJlZ2lvbj09IkhhdXQgTG8iJiBPYmplY3RpdmU9PSJPMyIpJT4lc2VsZWN0KElSLEFjdGl2aXRlcyxSZWdpb24pJT4lZGF0YS5mcmFtZSgpLT5kDQoNCmI8LXJlYWQuY3N2KCJXUCBITC5jc3YiKQ0KYjwtc3Vic2V0KGIsTW9udGg9PSJGZWIiLHNlbGVjdD1jKExvZyxBY3Rpdml0ZXMsb3ApKQ0KZjwtYltiJExvZyVpbiVwYXN0ZTAoIklSIDMuIiwxOjQpLF0NCmU8LXRhYmxlKGYkTG9nKQ0KZCRXUDwtZVsxNjoxOV0NCg0KZCU+JXNlbGVjdChJUixXUCxBY3Rpdml0ZXMpJT4lbXV0YXRlKFJhdGU9cm91bmQoQWN0aXZpdGVzKjEwMC9XUCkpLT5kDQprbml0cjo6a2FibGUoZCwicGFuZG9jIixhbGlnbj0ibGNjciIpDQpgYGANCg0KDQoNCiMjIyBSSSAzLjI6IFV0aWxpc2F0aW9uIGFjY3J1ZSBkZXMgc2VydmljZXMgZGUgc2FudMOpIGF1IG5pdmVhdSBkZXMgZm9ybWF0aW9ucyBzYW5pdGFpcmVzIGV0IGF1IG5pdmVhdSBkZXMgY29tbXVuYXV0w6lzDQoNCiZuYnNwOw0KJm5ic3A7DQoNCipBcHB1eWVyIHRlY2huaXF1ZW1lbnQgbGVzIEVDWlMgcG91ciBjYXJ0b2dyYXBoaWVyIGxlcyBwcmluY2lwYXV4IGluZmx1ZW5jZXVycyBldCDDqWxhYm9yZXIgdW4gcGxhbiBkJ2VuZ2FnZW1lbnQqDQoNCiZuYnNwOw0KJm5ic3A7DQoNCiMjIyBSSSAzLjM6IFLDqWR1Y3Rpb24gZGVzIGJhcnJpw6hyZXMgc29jaW9jdWx0dXJlbGxlcyDDoCBsJ3V0aWxpc2F0aW9uIGRlcyBzZXJ2aWNlcyBkZSBzYW50w6kgZXQgYXUgY2hhbmdlbWVudCBkZXMgY29tcG9ydGVtZW50cw0KDQombmJzcDsNCiZuYnNwOw0KDQoqT3JnYW5pc2VyIGRlcyBmb2N1cyBncm91cCoNCg0KJm5ic3A7DQombmJzcDsNCg0KDQoNCg==