3. REPORTING BY PROGRAM AREA

 

MALARIA

 

  - 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]

 

 

    Kinkondja est une ZS relativement moins peuplee, mais elle a connut plusieurs cas de paludisme que des ZS plus peuplee comme Kabondo dianda et Kaniama. De septembre a Decembre le nombre de cas de palu connait une chute.    

Percent of pregnant women who received doses of sulfadoxine/ pyrimethamine (S/P) for Intermittent Preventive Treatment (IPT) during ANC visits [2.4]

   

    La performance generale de la province se situe autour de 77%, La ZS de Lwamba a realise la performance la plus faible de 64%, elle est suivie par Butumba et Mulongo.

 
 

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]

Les grandes ZS pourvoyeuses des cas de pneumonie sont Malemba Nkulu et Bukama, parmi les ZS a forte densite qui rapportent moins il y a la ZS de Kabongo, Kabondo Dianda. il faudrait s’assurer si la definition de cas est respectee dans ces ZS.

 
 

   

    depuis septembre la distribution des Milds connait une chute dans toutes les ZS sauf en decembre ou s’est tenu la campagne de distribution de milds. Voir si les milds de routine etaien disponibles dans les ZS en septembre, octobre et decembre, le pic observe en decembre ne serai-il- pas du aux Milds de la campagne?.

 

    Le nombre de cas de diarrhee sont plus eleves dans les ZS riverraines: Malemba, Kinkondja,Bukama,Mulongo a l’exception de Mukanga. il faudrait documenter comment la lutte contre la diarrhee se Fait a Mukanga pour partager cette experience avec les autres ZS

 

   

  En novembre,il y a eu legere augmentation du nombre des enfants vaccine au pentavalent. Les ZS Baka, Kayamba et Kinda ont vacine moins des enfants du fait de leur population faible

 
 

    Comme vu pour le pentavalent, le VAR a connu un rebound en novembre mais le mois de decembre est caracterise par une contre performance a 63%. plusieurs ZS n’ont pas atteint la cible de 90% parmis les plus concernes il y a Mukanga,Bukama,Kinda,Kayamba et Baka

 

   

 
 
Le taux de frequentation CPN connait une legere chute au cours de cette periode, les ZS plus concernees sont:Baka, Kamina et Songa. Les mini campagnes pour l’utulisation de la CPN devraient se faire regulierement dans ces ZS.  

  le taux de frequentation CPN4 est au dessus de la norme de 60% pour la province sauf en decembre. Dans plusieurs ZS, il approche 80% comme Bukama, Kayamba, Malemba et Mukanga. Ne serait ce pas l’effet achat des performances?

 

  En octobre, le taux d’accouchement assiste a ete le plus faible de l’annee, les ZS a problemes sont :Kabongo,Kabondo,Kitenge et Butumba.Le cas de la ZS de Kabongo doit etre investigue.

 

 

    Le nombre de cas de Gatpa a connu une evolution en dents de scie cette periode mais le cas de la ZS de Malemba qui se retrouve parmi les plus faibles alors qu’elle est une ZS tres peuplee merite une investigation poussee, sur entre autre la disponibilite de l’Ocytocin.

  La performance en soins essentiels des nouveaux nes est autour de 94%, plus de 6 enfants sur 100 manquent aux soins dans les ZS suivant:Kabondo, Kitenge.

 

   

  Les visites CPON1 ont connu une chute en decembre, la principale raison serait la completude des donnees qui est tres faible.

 

 

 

 

     

NUTRITION

 

  La ZS de Malemba a une forte frequentation en CPS, elle est suivi par Kinkondja.

     

REPRODUCTIVE HEALTH/FAMILY PLANNING

  - Number of new acceptors using modern contraceptive methods in USG-supported facilities [3 fee proxy]

  Le nombre des nouvelles acceptantes connait une diminution en novembre, la ZS de Kabondo dianda et Kamina sont plus peuplees mais le nombre des nouvelles acceptantes est faible malgre les activites de DBC mis en place.

 

 

TUBERCULOSIS

WATER, SANITATION, AND HYGIENE

4.REPORTING BY PROGRAM ACTIVITIES

cfr rapport programmatique

LS0tDQp0aXRsZTogIkFuYWx5c2VfRG9ubmVlc19PY3RvYnJlX0RlY2VtYnJlX0hMIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0UsZWNobz1GLGZpZy5hbGlnbj0iY2VudGVyIn0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UpDQpvdXQud2lkdGg9IjUwJSINCm91dC5oZWlnaHQ9IjUwJSINCmBgYA0KDQombmJzcDsNCg0KDQojIyAzLiBSRVBPUlRJTkcgQlkgUFJPR1JBTSBBUkVBDQombmJzcDsNCg0KYGBge3IsZWNobz1GLG1lc3NhZ2U9Rn0NCmRhdGFiPC1yZWFkLmNzdigiRGF0YWIuY3N2IikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQoNCm5hbWVzKGRhdGFiKVs2OjhdPC1wYXN0ZTAoIlNQIiwxOjMpDQpuYW1lcyhkYXRhYilbMjU6MjZdPC1wYXN0ZTAoInBhbHUiLGMoInMiLCJnIiksc2VwPSJfIikNCm5hbWVzKGRhdGFiKVsyMDoyMV08LXBhc3RlMCgiRGlhcnJfc2V2IiwxOjIpDQoNCiNkYXRhZyRwZXJpb2RuYW1lPC1hcy5jaGFyYWN0ZXIoZGF0YWckcGVyaW9kbmFtZSkNCiNkYXRhZyRwZXJpb2RuYW1lW2RhdGFnJHBlcmlvZG5hbWU9PSJKdWlsbGV0Il08LSIxLkp1aWxsZXQiDQpkYXRhYiRwZXJpb2RuYW1lPC1wYXN0ZTAobWF0Y2goZGF0YWIkcGVyaW9kbmFtZSxjKCJKdWlsbGV0IiwiQW/Du3QiLCJTZXB0ZW1icmUiLCJPY3RvYnJlIiwiTm92ZW1icmUiLCJEw6ljZW1icmUiKSksIi4iLGRhdGFiJHBlcmlvZG5hbWUpDQpkYXRhZzwtZGF0YWJbZGF0YWIkcGVyaW9kbmFtZSAlaW4lIGMoIjUuTm92ZW1icmUiLCI0Lk9jdG9icmUiLCI2LkTDqWNlbWJyZSIpLF0NCg0KbmFtZXMoZGF0YWIpWzMxOjM1XTwtcGFzdGUwKCJNaWxkQ3BzIiwxOjUpDQojc2luaygiTmFtZXNiLnR4dCIpDQojbmFtZXMoZGF0YWIpDQojc2luaygpDQoNCmRhdGFnPC1hZ2dyZWdhdGUoZGF0YWdbLDQ6bmNvbChkYXRhZyldLGxpc3QoZGF0YWckenMsZGF0YWckcGVyaW9kbmFtZSksc3VtLG5hLnJtPVQpDQpuYW1lcyhkYXRhZylbMToyXTwtYygienMiLCJwZXJpb2RuYW1lIikNCm5hbWVzKGRhdGFnKVszXTwtIkNQTiINCm5hbWVzKGRhdGFiKVs0XTwtIkNQTiINCm5hbWVzKGRhdGFnKVs0XTwtIkNQTjQiDQpuYW1lcyhkYXRhYilbNV08LSJDUE40Ig0KI3NpbmsoIk5hbWVzZy50eHQiKQ0KI25hbWVzKGRhdGFnKQ0KI3NpbmsoKQ0KDQp0b3QyIDwtIGZ1bmN0aW9uKHhkKXsNCiAgcDwtYyhhcy5jaGFyYWN0ZXIoeGRbLDFdKSwnVG90YWwnKQ0KICBhPC1hcHBseSh4ZFssMjpuY29sKHhkKV0sMixzdW0sbmEucm09VCkNCiAgYTwtcmJpbmQoeGRbLDI6bmNvbCh4ZCldLGEpDQogIHU8LWRhdGEuZnJhbWUocCxhKQ0KICBuYW1lcyh1KVsxXTwtIk1vaXMiDQogIGFzc2lnbigidG90YWwiLHUsZW52aXI9Lkdsb2JhbEVudikNCn0NCg0KY2libGVzPC1yZWFkLmNzdigiQzovVXNlcnMvTXV5dW5nYVAvRG9jdW1lbnRzL1BST1NBTkkgVVNBSUQvUVVBUlRFUiBSRVBPUlQvWTIgUkVQT1JUL0NJQkxFUzIuY3N2IikNCmNpYmxlYTwtcmVhZC5jc3YyKCJDOi9Vc2Vycy9NdXl1bmdhUC9Eb2N1bWVudHMvUFJPU0FOSSBVU0FJRC9BTkFMWVNJUy9ZMi9jaWJsZXMuY3N2IikNCg0KY2x1czwtZGF0YS5mcmFtZSh6cz11bmlxdWUoZGF0YWIkenMpKQ0KY2x1cyRwb3A8LWlmZWxzZShjbHVzJHpzJWluJWMoIkJha2EiLCJLYXlhbWJhIiwiS2luZGEiLCJMd2FtYmEiKSwiMU1vaW5zIHBldXBsw6llIixpZmVsc2UoY2x1cyR6cyVpbiVjKCJCdXR1bWJhIiwiS2Fib25kb0QiLCJLYW1pbmEiLCJLaW5rb25kamEiLCJNdWthbmdhIiwiU29uZ2EiKSwiMlBldXBsw6llIiwiM1BsdXMgcGV1cGzDqWUiKSkNCmNsdXM8LWNsdXNbb3JkZXIoY2x1cyR6cyksXQ0KYGBgDQogICAgDQoNCiMjIE1BTEFSSUENCg0KJm5ic3A7DQoNCg0KJm5ic3A7DQotICoqTnVtYmVyIG9mIGNoaWxkcmVuIHVuZGVyIDUgeWVhcnMgb2YgYWdlIHdpdGggY29uZmlybWVkIG1hbGFyaWEgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBmb3IgbWFsYXJpYSBmcm9tIGFuIGFwcHJvcHJpYXRlIHByb3ZpZGVyIGluIFVTRy1zdXBwb3J0ZWQgYXJlYXMgWzE1IGZlZSBwcm94eV0qKiAgDQoNCiZuYnNwOw0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCI5NDA3IiksYygiNzQ0MzAiKSxjKCIxMjYuNCIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSIpKQ0KDQpgYGANCg0KJm5ic3A7DQoNCmBgYHtyLHJlc3VsdHM9ImhpZGUifQ0KYTwtZGF0YWcNCmEkcGFsdTwtcm93U3VtcyhhWywyNDoyNV0pDQphPC1hZ2dyZWdhdGUoYVssYygyMCw2NildLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQphJGNpYmxlPC1yb3VuZChjaWJsZXMkUGFsdWRpc21lWzNdLzEyKQ0KdG90MihhKQ0KdG90YWxbLDJdPC1OVUxMDQojdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkcGFsdSoxMDAvdG90YWwkY2libGUsMCkNCiNrbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KYjwtZGF0YWINCmIkcGFsdTwtcm93U3VtcyhiWywyNToyNl0sbmEucm09VCkNCiNkYXRhZyRQYWx1PC1yb3dTdW1zKGRhdGFnWywyMDoyMV0sbmEucm09VCkNCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKFBhbHU9c3VtKHBhbHVzXytwYWx1Z18pKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PVBhbHUsZmlsbD1wb3ApKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsY29sPSJncmV5IixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1QYWx1KSxjZXg9Myx2anVzdD0yKStzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlPSJZbE9yQnIiKQ0KDQpiJT4lZ3JvdXBfYnkocGVyaW9kbmFtZSklPiVzdW1tYXJpc2UoUGFsdT1zdW0ocGFsdSkpLT5wDQoNCmdncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1QYWx1KSkrZ2VvbV9saW5lKGFlcyhncm91cD0xKSxzaXplPTIsY29sb3I9ImxpZ2h0Ymx1ZSIpK2dlb21fcG9pbnQoY29sb3I9InJlZCIpK3RoZW1lX2NsYXNzaWMoKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9MCxzaXplPTgpKStnZW9tX3RleHQoYWVzKGxhYmVsPXJvdW5kKFBhbHUsMCkpLHNpemU9Myx2anVzdD0tLjUpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrY29vcmRfY2FydGVzaWFuKHk9YygyMDAwMCw0MDAwMCkpDQogIA0KICAjZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGZpbGw9ImxpZ2h0Ymx1ZSIsY29sPSJ0b21hdG8iLGFscGhhPS43KSt0aGVtZV9jbGFzc2ljKCkrbGFicyh4PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStnZW9tX3RleHQoYWVzKGxhYmVsPVBhbHUpLGNleD0zLHZqdXN0PTIpDQoNCmBgYA0KJm5ic3A7DQombmJzcDsNCktpbmtvbmRqYSBlc3QgdW5lIFpTIHJlbGF0aXZlbWVudCBtb2lucyBwZXVwbGVlLCBtYWlzIGVsbGUgYSBjb25udXQgcGx1c2lldXJzIGNhcyBkZSBwYWx1ZGlzbWUgcXVlIGRlcyBaUyBwbHVzIHBldXBsZWUgY29tbWUgS2Fib25kbyBkaWFuZGEgZXQgS2FuaWFtYS4gRGUgc2VwdGVtYnJlIGEgRGVjZW1icmUgbGUgbm9tYnJlIGRlIGNhcyBkZSBwYWx1IGNvbm5haXQgdW5lIGNodXRlLg0KJm5ic3A7DQombmJzcDsNCg0KKipQZXJjZW50IG9mIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCBkb3NlcyBvZiBzdWxmYWRveGluZS8gcHlyaW1ldGhhbWluZSAoUy9QKSBmb3IgSW50ZXJtaXR0ZW50IFByZXZlbnRpdmUgVHJlYXRtZW50IChJUFQpIGR1cmluZyBBTkMgdmlzaXRzIFsyLjRdKioNCg0KJm5ic3A7DQombmJzcDsNCg0KYGBge3IscmVzdWx0cz0iaGlkZSJ9DQphPC1kYXRhZw0KYSRTUDwtcm93U3VtcyhhWyw1OjddKQ0KYTwtYWdncmVnYXRlKGFbLGMoMyw1MCldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQphJGNpYmxlPC1hWywyXSozDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCiN0b3RhbCRwZXJjZW50PC1yb3VuZCh0b3RhbCRTUCoxMDAvdG90YWwkY2libGUsMCkNCiNrbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KDQpiPC1kYXRhYg0KYiRTUDwtcm93U3VtcyhiWyw2OjhdLG5hLnJtPVQpDQoNCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKHNwYT1zdW0oU1AxK1NQMitTUDMsbmEucm09VCksY3BuYT1zdW0oQ1BOLG5hLnJtPVQpKSU+JSBtdXRhdGUoU1A9cm91bmQoc3BhKjEwMC8oY3BuYSozKSkpLT5wDQpwJHBvcDwtY2x1cyRwb3ANCmdncGxvdChwLGFlcyh4PXpzLHk9U1AsZmlsbD1wb3ApKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsY29sPSJncmV5IixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1TUCksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKHNwYT1zdW0oU1AxK1NQMitTUDMsbmEucm09VCksY3BuYT1zdW0oQ1BOLG5hLnJtPVQpKSU+JSBtdXRhdGUoU1A9cm91bmQoc3BhKjEwMC8oY3BuYSozKSkpLT5wDQoNCmdncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1TUCkpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChTUCwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLHk9IiUgU1AiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDUwLDkwKSkNCg0KYGBgDQombmJzcDsNCiZuYnNwOw0KTGEgcGVyZm9ybWFuY2UgZ2VuZXJhbGUgZGUgbGEgcHJvdmluY2Ugc2Ugc2l0dWUgYXV0b3VyIGRlIDc3JSwgTGEgWlMgZGUgTHdhbWJhIGEgcmVhbGlzZSBsYSBwZXJmb3JtYW5jZSBsYSBwbHVzIGZhaWJsZSBkZSA2NCUsIGVsbGUgZXN0IHN1aXZpZSBwYXIgQnV0dW1iYSBldCBNdWxvbmdvLg0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCI5MS4wIiksYygiMzc1MTgiKSxjKCI0MTI0NSIpLGMoIjEwMCIpLGMoJzkxLjAnKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsJ051bWVyYXRvcicsJ0Rlbm9taW5hdG9yJywiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlIikpDQoNCmBgYA0KDQombmJzcDsgIA0KJm5ic3A7ICANCg0KDQojIyBNQVRFUk5BTCwgTkVPTkFUQUwsIEFORCBDSElMRCBIRUFMVEgNCiZuYnNwOw0KJm5ic3A7DQotCSoqTnVtYmVyIG9mIGNoaWxkcmVuIHVuZGVyIGZpdmUgeWVhcnMgb2YgYWdlIHRoYXQgcmVjZWl2ZWQgdHJlYXRtZW50IGZvciBhbiBhY3V0ZSByZXNwaXJhdG9yeSBpbmZlY3Rpb24gZnJvbSBhbiBhcHByb3ByaWF0ZSBwcm92aWRlciBbNSBmZWUgcHJveHldKiogDQpgYGB7cixmaWcuYWxpZ249ImNlbnRlciJ9DQphPC1kYXRhZw0KYSRQbmV1bW9uaWU8LXJvd1N1bXMoYVssMjI6MjNdKQ0KYTwtYWdncmVnYXRlKGFbLGMoMTgsNjYpXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtKQ0KYSRjaWJsZTwtcm91bmQoY2libGVzJFBuZXVtb25pZVszXS8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KI3RvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJFBuZXVtb25pZSoxMDAvdG90YWwkY2libGUsMCkNCiNrbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KDQpiPC1kYXRhYg0KYiRwbmV1bTwtcm93U3VtcyhiWywyMzoyNF0sbmEucm09VCkNCg0KbmFtZXMoZGF0YWcpWzIyOjIzXTwtYygiUG5ldW1vbmlzIiwiUG5ldW1vbmlnIikNCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKHBuZXVtPXN1bShQbmV1bW9uaXMrUG5ldW1vbmlnLG5hLnJtPVQpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PXBuZXVtLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9cG5ldW0pLGNleD0zLHZqdXN0PTIpK3NjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsT3JCciIpDQoNCm5hbWVzKGIpWzIzOjI0XTwtYygiUG5ldW1vbmlzIiwiUG5ldW1vbmlnIikNCmIlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShwbmV1bT1zdW0ocG5ldW0sbmEucm09VCkpLT5wDQoNCmdncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1wbmV1bSkpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChwbmV1bSwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLHk9IlBuZXVtb25pZSA8IDUiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDUwMDAsMTAwMDApKQ0KICANCiAgI2dlb21fYmFyKHN0YXQ9J2lkZW50aXR5JyxmaWxsPSJsaWdodGJsdWUiLGNvbD0idG9tYXRvIixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1wbmV1bSksY2V4PTMsdmp1c3Q9MikNCmBgYA0KTGVzIGdyYW5kZXMgWlMgcG91cnZveWV1c2VzIGRlcyBjYXMgZGUgcG5ldW1vbmllIHNvbnQgTWFsZW1iYSBOa3VsdSBldCBCdWthbWEsIHBhcm1pIGxlcyBaUyBhIGZvcnRlIGRlbnNpdGUgcXVpIHJhcHBvcnRlbnQgbW9pbnMgaWwgeSBhIGxhIFpTIGRlIEthYm9uZ28sIEthYm9uZG8gRGlhbmRhLiBpbCBmYXVkcmFpdCBzJ2Fzc3VyZXIgc2kgbGEgZGVmaW5pdGlvbiBkZSBjYXMgZXN0IHJlc3BlY3RlZSBkYW5zIGNlcyBaUy4NCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMTk4NzIiKSxjKCIyMTU4MSIpLGMoIjkyLjEiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUoJSkiKSkNCg0KYGBgDQoNCiZuYnNwOyAgDQombmJzcDsgIA0KDQoNCg0KDQombmJzcDsNCiZuYnNwOw0KDQotICoqTnVtYmVyIG9mIGluc2VjdGljaWRlLXRyZWF0ZWQgbmV0cyAoSVROKSBkaXN0cmlidXRlZCBkdXJpbmcgYW50ZW5hdGFsIGFuZC9vciBjaGlsZCBpbW11bml6YXRpb24gdmlzaXRzKioNCg0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIyMjk1OCIpLGMoIjI2MDQ1IiksYygiODguMSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSglKSIpKQ0KDQpiPC1kYXRhYg0KYiRNaWxkPC1yb3dTdW1zKGJbLDMwOjM2XSxuYS5ybT1UKQ0KbmFtZXMoZGF0YWcpWzI5OjM1XTwtcGFzdGUwKCJtaWxkIiwxOjcpDQpkYXRhZyU+JWdyb3VwX2J5KHpzKSU+JXN1bW1hcmlzZShNaWxkPXN1bShtaWxkMSttaWxkMittaWxkMyttaWxkNCttaWxkNSttaWxkNittaWxkNykpLT5wDQpwJHBvcDwtY2x1cyRwb3ANCmdncGxvdChwLGFlcyh4PXpzLHk9TWlsZCxmaWxsPXBvcCkpK2dlb21fYmFyKHN0YXQ9J2lkZW50aXR5Jyxjb2w9ImdyZXkiLGFscGhhPS43KSt0aGVtZV9jbGFzc2ljKCkrbGFicyh4PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStnZW9tX3RleHQoYWVzKGxhYmVsPU1pbGQpLGNleD0zLHZqdXN0PTIpK3NjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsT3JCciIpDQoNCmIlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShNaWxkPXN1bShNaWxkKSktPnANCg0KZ2dwbG90KHAsYWVzKHg9cGVyaW9kbmFtZSx5PU1pbGQpKStnZW9tX2xpbmUoYWVzKGdyb3VwPTEpLHNpemU9Mixjb2xvcj0ibGlnaHRibHVlIikrZ2VvbV9wb2ludChjb2xvcj0icmVkIikrdGhlbWVfY2xhc3NpYygpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT0wLHNpemU9OCkpK2dlb21fdGV4dChhZXMobGFiZWw9cm91bmQoTWlsZCwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLHRpdGxlPSJNSUlMRCIsIHk9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2Nvb3JkX2NhcnRlc2lhbih5PWMoMCwxODAwMCkpDQoNCmBgYA0KDQombmJzcDsNCiZuYnNwOw0KZGVwdWlzIHNlcHRlbWJyZSBsYSBkaXN0cmlidXRpb24gZGVzIE1pbGRzIGNvbm5haXQgdW5lIGNodXRlIGRhbnMgdG91dGVzIGxlcyBaUyBzYXVmIGVuIGRlY2VtYnJlIG91IHMnZXN0IHRlbnUgbGEgY2FtcGFnbmUgZGUgZGlzdHJpYnV0aW9uIGRlIG1pbGRzLiBWb2lyIHNpIGxlcyBtaWxkcyBkZSByb3V0aW5lIGV0YWllbiBkaXNwb25pYmxlcyBkYW5zIGxlcyBaUyBlbiBzZXB0ZW1icmUsIG9jdG9icmUgZXQgZGVjZW1icmUsIGxlIHBpYyBvYnNlcnZlIGVuIGRlY2VtYnJlIG5lIHNlcmFpLWlsLSBwYXMgZHUgYXV4IE1pbGRzIGRlIGxhIGNhbXBhZ25lPy4NCg0KJm5ic3A7DQoNCi0JKipOdW1iZXIgb2YgY2FzZXMgb2YgY2hpbGQgZGlhcnJoZWEgdHJlYXRlZCBpbiBVU0ctc3VwcG9ydGVkIHByb2dyYW1zIFs3IGZlZSBwcm94eV0qKg0KJm5ic3A7DQpgYGB7cn0NCmE8LWRhdGFnDQphJERpYXJyaGVlPC1yb3dTdW1zKGFbLDIxOjIzXSkNCmE8LWFnZ3JlZ2F0ZShhWyxjKDE1LDY2KV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LXJvdW5kKGNpYmxlcyREaWFycmhlZVszXS8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KI3RvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJERpYXJyaGVlKjEwMC90b3RhbCRjaWJsZSwwKQ0KI2tuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQoNCmI8LWRhdGFiDQpiJERpYXJyaDwtcm93U3VtcyhiWywyMDoyMl0sbmEucm09VCkNCm5hbWVzKGIpWzIyXTwtImRpYXMiDQpuYW1lcyhkYXRhZylbMjFdPC0iZGlhcyINCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKERpYXJyaD1zdW0oRGlhcnJfc2V2MStEaWFycl9zZXYyK2RpYXMsbmEucm09VCkpLT5wDQpwJHBvcDwtY2x1cyRwb3ANCmdncGxvdChwLGFlcyh4PXpzLHk9RGlhcnJoLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9RGlhcnJoKSxjZXg9Myx2anVzdD0yKStzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlPSJZbE9yQnIiKQ0KDQpiJT4lZ3JvdXBfYnkocGVyaW9kbmFtZSklPiVzdW1tYXJpc2UoRGlhcnJoPXN1bShEaWFycmgpKS0+cA0KDQpnZ3Bsb3QocCxhZXMoeD1wZXJpb2RuYW1lLHk9RGlhcnJoKSkrZ2VvbV9saW5lKGFlcyhncm91cD0xKSxzaXplPTIsY29sb3I9ImxpZ2h0Ymx1ZSIpK2dlb21fcG9pbnQoY29sb3I9InJlZCIpK3RoZW1lX2NsYXNzaWMoKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9MCxzaXplPTgpKStnZW9tX3RleHQoYWVzKGxhYmVsPXJvdW5kKERpYXJyaCwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLHk9IiIsdGl0bGU9IkRpYXJyaGVlIDwgNSBhbnMiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDgwMDAsMTQwMDApKQ0KDQoNCmBgYA0KDQombmJzcDsNCiZuYnNwOw0KTGUgbm9tYnJlIGRlIGNhcyBkZSBkaWFycmhlZSBzb250IHBsdXMgZWxldmVzIGRhbnMgbGVzIFpTIHJpdmVycmFpbmVzOiBNYWxlbWJhLCBLaW5rb25kamEsQnVrYW1hLE11bG9uZ28gYSBsJ2V4Y2VwdGlvbiBkZSBNdWthbmdhLiBpbCBmYXVkcmFpdCBkb2N1bWVudGVyIGNvbW1lbnQgbGEgbHV0dGUgY29udHJlIGxhIGRpYXJyaGVlIHNlIEZhaXQgYSBNdWthbmdhIHBvdXIgcGFydGFnZXIgY2V0dGUgZXhwZXJpZW5jZSBhdmVjIGxlcyBhdXRyZXMgWlMNCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMjU1NDMiKSxjKCIyNTQ4NiIpLGMoIjEwMC4yIikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlIikpDQoNCmBgYA0KDQoNCiZuYnNwOw0KDQoNCiZuYnNwOw0KJm5ic3A7DQoNCg0KLQkqKk51bWJlciBvZiBjaGlsZHJlbiBsZXNzIHRoYW4gMTIgbW9udGhzIG9mIGFnZSB3aG8gcmVjZWl2ZWQgdGhyZWUgZG9zZXMgb2YgcGVudGF2YWxlbnQgdmFjY2luZSBbOSBmZWUgcHJveHldKioNCiZuYnNwOw0KYGBge3IsZmlnLmFsaWduPSJjZW50ZXIifQ0KYTwtZGF0YWcNCmEkUGVudGE8LXJvd1N1bXMoYVssNDE6NDNdKQ0KYTwtYWdncmVnYXRlKGFbLGMoNDEsNjYpXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtLG5hLnJtPVQpDQphJGNpYmxlPC1yb3VuZChjaWJsZXMkUGVudGFbM10vMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCiN0b3RhbCRwZXJjZW50PC1yb3VuZCh0b3RhbCRQZW50YSoxMDAvdG90YWwkY2libGUsMCkNCiNrbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KDQpiPC1kYXRhYg0KYiRQZW50YTwtcm93U3VtcyhiWywyNzoyOV0sbmEucm09VCkNCm5hbWVzKGRhdGFnKVsyNjoyOF08LXBhc3RlMCgiUGVudGEiLDE6MykNCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKFBlbnRhPXN1bShQZW50YTErUGVudGEyK1BlbnRhMykpLT5wDQpwJHBvcDwtY2x1cyRwb3ANCmdncGxvdChwLGFlcyh4PXpzLHk9UGVudGEsZmlsbD1wb3ApKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsY29sPSJncmV5IixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1QZW50YSksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKFBlbnRhPXN1bShQZW50YSkpLT5wDQoNCmdncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1QZW50YSkpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChQZW50YSwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLHk9IiIsdGl0bGU9IlZBQ0NJTiBQRU5UQVZBTEVOVCIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2Nvb3JkX2NhcnRlc2lhbih5PWMoODAwMCwxNDAwMCkpDQogIA0KYGBgDQombmJzcDsNCkVuIG5vdmVtYnJlLGlsIHkgYSBldSBsZWdlcmUgYXVnbWVudGF0aW9uIGR1IG5vbWJyZSBkZXMgZW5mYW50cyB2YWNjaW5lIGF1IHBlbnRhdmFsZW50LiBMZXMgWlMgQmFrYSwgS2F5YW1iYSBldCBLaW5kYSBvbnQgdmFjaW5lIG1vaW5zIGRlcyBlbmZhbnRzIGR1IGZhaXQgZGUgbGV1ciBwb3B1bGF0aW9uIGZhaWJsZQ0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMzA2NTIiKSxjKCIzMTM1MyIpLGMoIjk3LjgiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYGBgDQoNCiZuYnNwOyAgDQombmJzcDsgIA0KDQoNCi0JKipQZXJjZW50IG9mIGNoaWxkcmVuIGxlc3MgdGhhbiAxMiBtb250aHMgb2YgYWdlIHdobyByZWNlaXZlZCBtZWFzbGVzIHZhY2NpbmUgZnJvbSBVU0ctc3VwcG9ydGVkIHByb2dyYW1zIFsxMF0qKg0KJm5ic3A7DQpgYGB7cixmaWcuYWxpZ249ImNlbnRlciJ9DQphPC1kYXRhZw0KYSRWQVI8LXJvd1N1bXMoYVssMzE6MzNdKQ0KYTwtYWdncmVnYXRlKGFbLGMoMzEsNTApXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtKQ0KYSRjaWJsZTwtcm91bmQoY2libGVzJFZBUlszXS8xMikNCnRvdDIoYSkNCnRvdGFsWywyXTwtTlVMTA0KI3RvdGFsJHBlcmNlbnQ8LXJvdW5kKHRvdGFsJFZBUioxMDAvdG90YWwkY2libGUsMCkNCiNrbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KDQpiPC1kYXRhYg0KYiRWYXI8LXJvd1N1bXMoYlssNDI6NDRdLG5hLnJtPVQpDQpuYW1lcyhkYXRhZylbNDE6NDNdPC1wYXN0ZTAoIlZhciIsMTozKQ0KbmFtZXMoZGF0YWcpWzQ3XTwtInBvcCINCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKFZhcmE9c3VtKFZhcjErVmFyMitWYXIzLG5hLnJtPVQpLHBvcGE9c3VtKHBvcCxuYS5ybT1UKSklPiUgbXV0YXRlKFZhcj1yb3VuZChWYXJhKjEyMDAwMC8ocG9wYSo0KSkpLT5wDQpwJHBvcDwtY2x1cyRwb3ANCmdncGxvdChwLGFlcyh4PXpzLHk9VmFyLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9VmFyKSxjZXg9Myx2anVzdD0yKStzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlPSJZbE9yQnIiKQ0KDQpuYW1lcyhiKVs0Mjo0NF08LXBhc3RlMCgiVmFyIiwxOjMpDQpuYW1lcyhiKVs0OF08LSJwb3AiDQpiJT4lZ3JvdXBfYnkocGVyaW9kbmFtZSklPiVzdW1tYXJpc2UoVmFyYT1zdW0oVmFyLG5hLnJtPVQpLHBvcGE9c3VtKHBvcCxuYS5ybT1UKSklPiUgbXV0YXRlKFZhcj1yb3VuZChWYXJhKjEyMDAwMC8ocG9wYSo0KSkpLT5wDQoNCmdncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1WYXIpKStnZW9tX2xpbmUoYWVzKGdyb3VwPTEpLHNpemU9Mixjb2xvcj0ibGlnaHRibHVlIikrZ2VvbV9wb2ludChjb2xvcj0icmVkIikrdGhlbWVfY2xhc3NpYygpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT0wLHNpemU9OCkpK2dlb21fdGV4dChhZXMobGFiZWw9cm91bmQoVmFyLDApKSxzaXplPTMsdmp1c3Q9LS41KStsYWJzKHg9IiIseT0iIix0aXRsZT0iJSBWQVIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDQwLDkwKSkNCg0KYGBgDQombmJzcDsNCiZuYnNwOw0KQ29tbWUgdnUgcG91ciBsZSBwZW50YXZhbGVudCwgbGUgVkFSIGEgY29ubnUgdW4gcmVib3VuZCBlbiBub3ZlbWJyZSBtYWlzIGxlIG1vaXMgZGUgZGVjZW1icmUgZXN0IGNhcmFjdGVyaXNlIHBhciB1bmUgY29udHJlIHBlcmZvcm1hbmNlIGEgNjMlLiBwbHVzaWV1cnMgWlMgbidvbnQgcGFzIGF0dGVpbnQgbGEgY2libGUgZGUgOTAlIHBhcm1pcyBsZXMgcGx1cyBjb25jZXJuZXMgaWwgeSBhIE11a2FuZ2EsQnVrYW1hLEtpbmRhLEtheWFtYmEgZXQgQmFrYQ0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMzE0MDgiKSxjKCIzMDE2OCIpLGMoIjk2LjEiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYGBgDQoNCiZuYnNwOyAgDQogDQombmJzcDsNCiZuYnNwOw0KDQotICoqUGVyY2VudGFnZSBvZiBwcmVnbmFudCB3b21lbiBhdHRlbmRpbmcgYXQgbGVhc3Qgb25lIGFudGVuYXRhbCBjYXJlIChBTkMpIHZpc2l0IHdpdGggYSBza2lsbGVkICBwcm92aWRlciBmcm9tIFVTRy0gc3VwcG9ydGVkIGhlYWx0aCBmYWNpbGl0aWVzKioNCiZuYnNwOw0KYGBge3IsZmlnLmFsaWduPSJjZW50ZXIifQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjkxIiksYygiMzc1MTgiKSxjKCI0MTI0NSIpLGMoIjEwMCIpLGMoIjkxIikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJOdW1lcmF0b3IiLCJEZW5vbWluYXRvciIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSglKSIpKQ0KDQpiPC1kYXRhYg0KI2IkVmFyPC1yb3dTdW1zKGJbLDQyOjQ0XSxuYS5ybT1UKQ0KI25hbWVzKGRhdGFnKVs0MTo0M108LXBhc3RlMCgiVmFyIiwxOjMpDQojbmFtZXMoZGF0YWcpWzQ3XTwtInBvcCINCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKGNwbmE9c3VtKENQTixuYS5ybT1UKSxwb3BhPXN1bShwb3AsbmEucm09VCkpJT4lIG11dGF0ZShDUE49cm91bmQoY3BuYSoxMjAwMDAvKHBvcGEqNCkpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PUNQTixmaWxsPXBvcCkpK2dlb21fYmFyKHN0YXQ9J2lkZW50aXR5Jyxjb2w9ImdyZXkiLGFscGhhPS43KSt0aGVtZV9jbGFzc2ljKCkrbGFicyh4PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStnZW9tX3RleHQoYWVzKGxhYmVsPUNQTiksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KI25hbWVzKGIpWzQyOjQ0XTwtcGFzdGUwKCJWYXIiLDE6MykNCm5hbWVzKGIpWzQ4XTwtInBvcCINCmIlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShjcG5hPXN1bShDUE4sbmEucm09VCkscG9wYT1zdW0ocG9wLG5hLnJtPVQpKSU+JSBtdXRhdGUoQ1BOPXJvdW5kKGNwbmEqMTIwMDAwLyhwb3BhKjQpKSktPnANCg0KZ2dwbG90KHAsYWVzKHg9cGVyaW9kbmFtZSx5PUNQTikpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChDUE4sMCkpLHNpemU9Myx2anVzdD0tLjUpK2xhYnMoeD0iIix5PSIiLHRpdGxlPSIlIENQTjEiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDQwLDEyMCkpDQoNCmBgYA0KDQombmJzcDsgIA0KJm5ic3A7ICANCkxlIHRhdXggZGUgZnJlcXVlbnRhdGlvbiBDUE4gY29ubmFpdCB1bmUgbGVnZXJlIGNodXRlIGF1IGNvdXJzIGRlIGNldHRlIHBlcmlvZGUsIGxlcyBaUyBwbHVzIGNvbmNlcm5lZXMgc29udDpCYWthLCBLYW1pbmEgZXQgU29uZ2EuIExlcyBtaW5pIGNhbXBhZ25lcyBwb3VyIGwndXR1bGlzYXRpb24gZGUgbGEgQ1BOIGRldnJhaWVudCBzZSBmYWlyZSByZWd1bGllcmVtZW50IGRhbnMgY2VzIFpTLg0KJm5ic3A7DQoNCi0JKipQZXJjZW50YWdlIG9mIHByZWduYW50IHdvbWVuIGF0dGVuZGluZyBhdCBsZWFzdCBvbmUgYW5kIGF0IGxlYXN0IDQgYW50ZW5hdGFsIGNhcmUgKEFOQykgd2l0aCBhIHNraWxsZWQgcHJvdmlkZXIgZnJvbSBVU0ctc3VwcG9ydGVkIGhlYWx0aCBmYWNpbGl0aWVzIFsxMiBmZWVdKioNCiZuYnNwOw0KYGBge3J9DQphPC1kYXRhZw0KYSRDUE5fNDwtYVssNF0NCmE8LWFnZ3JlZ2F0ZShhWyxjKDQsNTApXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtKQ0KYSRjaWJsZTwtcm91bmQoY2libGVzJENQTjRbM10vMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCiN0b3RhbCRwZXJjZW50PC1yb3VuZCh0b3RhbCRDUE5fNCoxMDAvdG90YWwkY2libGUsMCkNCiNrbml0cjo6a2FibGUodG90YWwsInBhbmRvYyIsYWxpZ249J2xjY3InKQ0KDQpiPC1kYXRhYg0KZGF0YWclPiVncm91cF9ieSh6cyklPiVzdW1tYXJpc2UoY3BuYT1zdW0oQ1BONCxuYS5ybT1UKSxwb3BhPXN1bShwb3AsbmEucm09VCkpJT4lIG11dGF0ZShDUE40PXJvdW5kKGNwbmEqMTIwMDAwLyhwb3BhKjQpKSktPnANCnAkcG9wPC1jbHVzJHBvcA0KZ2dwbG90KHAsYWVzKHg9enMseT1DUE40LGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9Q1BONCksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KI25hbWVzKGIpWzQyOjQ0XTwtcGFzdGUwKCJWYXIiLDE6MykNCm5hbWVzKGIpWzQ4XTwtInBvcCINCmIlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShjcG5hPXN1bShDUE40LG5hLnJtPVQpLHBvcGE9c3VtKHBvcCxuYS5ybT1UKSklPiUgbXV0YXRlKENQTjQ9cm91bmQoY3BuYSoxMjAwMDAvKHBvcGEqNCkpKS0+cA0KDQpnZ3Bsb3QocCxhZXMoeD1wZXJpb2RuYW1lLHk9Q1BONCkpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChDUE40LDApKSxzaXplPTMsdmp1c3Q9LS41KStsYWJzKHg9IiIseT0iIix0aXRsZT0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrY29vcmRfY2FydGVzaWFuKHk9Yyg0MCw3MCkpDQoNCmBgYA0KDQombmJzcDsNCmxlIHRhdXggZGUgZnJlcXVlbnRhdGlvbiBDUE40IGVzdCBhdSBkZXNzdXMgZGUgbGEgbm9ybWUgZGUgNjAlIHBvdXIgbGEgcHJvdmluY2Ugc2F1ZiBlbiBkZWNlbWJyZS4gRGFucyBwbHVzaWV1cnMgWlMsIGlsIGFwcHJvY2hlIDgwJSBjb21tZSBCdWthbWEsIEtheWFtYmEsIE1hbGVtYmEgZXQgTXVrYW5nYS4gTmUgc2VyYWl0IGNlIHBhcyBsJ2VmZmV0IGFjaGF0IGRlcyBwZXJmb3JtYW5jZXM/DQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIxOTg2MCIpLGMoIjE3ODk3IiksYygiMTExIikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlIikpDQoNCmBgYA0KDQombmJzcDsNCg0KLQkqKlBlcmNlbnRhZ2Ugb2YgZGVsaXZlcmllcyB3aXRoIGFuIFNCQSBpbiBVU0ctc3VwcG9ydGVkIGZhY2lsaXRpZXMqKiAgDQoNCmBgYHtyfQ0KYTwtZGF0YWcNCmEkQWNjPC1hWyw4XQ0KYTwtYWdncmVnYXRlKGFbLGMoOCwzNyw1MCldLGxpc3QoYSRwZXJpb2RuYW1lKSxzdW0pDQp0b3QyKGEpDQojdG90YWwkQWNjX1A8LXJvdW5kKHRvdGFsJEFjYyoxMjAwLyh0b3RhbFssM10qLjA0KSwwKQ0KdG90YWwkY2libGU0PC1yb3VuZCh0b3RhbFssM10qLjA0LzEyKQ0KdG90YWxbLDI6M108LU5VTEwNCnRvdGFsJGNpYmxlPTkwDQojdG90YWw8LXRvdGFsWyxjKDEsMiw0LDUsMyldDQoja25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIk1vaXMiLCJBY2NBc3Npc3QiLCJDaWJsZTQiLCJDaWJsZTkwIiwiJSIpKQ0KDQpiPC1kYXRhYg0KI2IkVmFyPC1yb3dTdW1zKGJbLDQyOjQ0XSxuYS5ybT1UKQ0KbmFtZXMoZGF0YWcpWzhdPC0iQWNjb3VjaF9hc3MiDQpuYW1lcyhkYXRhZylbNjJdPC0iQWNjb3VjaCINCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKEFjY291Y2hhPXN1bShBY2NvdWNoX2FzcyxuYS5ybT1UKSxhY2NhPXN1bShBY2NvdWNoLG5hLnJtPVQpKSU+JSBtdXRhdGUoQWNjb3VjaF9hc3M9cm91bmQoQWNjb3VjaGEqMTAwL2FjY2EpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PUFjY291Y2hfYXNzLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9QWNjb3VjaF9hc3MpLGNleD0zLHZqdXN0PTIpK3NjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsT3JCciIpDQoNCm5hbWVzKGIpWzldPC0iQWNjb3VjaF9hc3MiDQpuYW1lcyhiKVs2M108LSJBY2NvdWNoIg0KYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKEFjY291Y2hhPXN1bShBY2NvdWNoX2FzcyxuYS5ybT1UKSxhY2NhPXN1bShBY2NvdWNoLG5hLnJtPVQpKSU+JSBtdXRhdGUoQWNjb3VjaF9hc3M9cm91bmQoQWNjb3VjaGEqMTAwL2FjY2EpKS0+cA0KDQpnZ3Bsb3QocCxhZXMoeD1wZXJpb2RuYW1lLHk9QWNjb3VjaF9hc3MpKStnZW9tX2xpbmUoYWVzKGdyb3VwPTEpLHNpemU9Mixjb2xvcj0ibGlnaHRibHVlIikrZ2VvbV9wb2ludChjb2xvcj0icmVkIikrdGhlbWVfY2xhc3NpYygpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT0wLHNpemU9OCkpK2dlb21fdGV4dChhZXMobGFiZWw9cm91bmQoQWNjb3VjaF9hc3MsMCkpLHNpemU9Myx2anVzdD0tLjUpK2xhYnMoeD0iIix5PSIiLHRpdGxlPSIlIEFjY291Y2hlbWVudHMgYXNzaXN0w6lzIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrY29vcmRfY2FydGVzaWFuKHk9Yyg0MCwxNDApKQ0KDQpgYGANCiZuYnNwOw0KRW4gb2N0b2JyZSwgbGUgdGF1eCBkJ2FjY291Y2hlbWVudCBhc3Npc3RlIGEgZXRlIGxlIHBsdXMgZmFpYmxlIGRlIGwnYW5uZWUsIGxlcyBaUyBhIHByb2JsZW1lcyBzb250IDpLYWJvbmdvLEthYm9uZG8sS2l0ZW5nZSBldCBCdXR1bWJhLkxlIGNhcyBkZSBsYSBaUyBkZSBLYWJvbmdvIGRvaXQgZXRyZSBpbnZlc3RpZ3VlLg0KDQoNCmBgYHtyfQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjc2IiksYygiMzEzNjQiKSxjKCI0MTI0NSIpLGMoIjkwIiksYygiODQuNSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIlExIEFjaGlldmVtZW50IiwiTnVtZXJhdG9yIiwiRGVub21pbmF0b3IiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYGBgDQoNCiZuYnNwOw0KDQombmJzcDsNCg0KLQkqKk51bWJlciBvZiB3b21lbiBnaXZpbmcgYmlydGggd2hvIHJlY2VpdmVkIHV0ZXJvdG9uaWNzIGluIHRoZSB0aGlyZCBzdGFnZSBvZiBsYWJvciAoT1IgaW1tZWRpYXRlbHkgYWZ0ZXIgYmlydGgpIHRocm91Z2ggVVNHLXN1cHBvcnRlZCBwcm9ncmFtcyBbMi4xLjRdKioNCiZuYnNwOw0KDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIxNTg0IiksYygiMjE3OCIpLGMoIjcyLjciKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUiKSkNCg0KYjwtZGF0YWINCm5hbWVzKGIpWzEwXTwtIkdBVFBBIg0KbmFtZXMoZGF0YWcpWzldPC0iR0FUUEEiDQpkYXRhZyU+JWdyb3VwX2J5KHpzKSU+JXN1bW1hcmlzZShHQVRQQT1zdW0oR0FUUEEpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PUdBVFBBLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9R0FUUEEpLGNleD0zLHZqdXN0PTIpK3NjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsT3JCciIpDQoNCmIlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShHQVRQQT1zdW0oR0FUUEEsbmEucm09VCkpLT5wDQoNCmdncGxvdChwLGFlcyh4PXBlcmlvZG5hbWUseT1HQVRQQSkpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChHQVRQQSwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLCB5PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDQwMCwxNDAwKSkNCmBgYA0KDQombmJzcDsNCiZuYnNwOw0KTGUgbm9tYnJlIGRlIGNhcyBkZSBHYXRwYSBhIGNvbm51IHVuZSBldm9sdXRpb24gZW4gZGVudHMgZGUgc2NpZSBjZXR0ZSBwZXJpb2RlIG1haXMgbGUgY2FzIGRlIGxhIFpTIGRlIE1hbGVtYmEgcXVpIHNlIHJldHJvdXZlIHBhcm1pIGxlcyBwbHVzIGZhaWJsZXMgYWxvcnMgcXUnZWxsZSBlc3QgdW5lIFpTIHRyZXMgcGV1cGxlZSBtZXJpdGUgdW5lIGludmVzdGlnYXRpb24gcG91c3NlZSwgc3VyIGVudHJlIGF1dHJlIGxhIGRpc3BvbmliaWxpdGUgZGUgbCdPY3l0b2Npbi4NCg0KLQkqKk51bWJlciBhbmQgcGVyY2VudGFnZSBvZiBuZXdib3JucyByZWNlaXZpbmcgZXNzZW50aWFsIG5ld2Jvcm4gY2FyZSB0aHJvdWdoIFVTRy1zdXBwb3J0ZWQgcHJvZ3JhbXMqKg0KDQpgYGB7cn0NCmE8LWRhdGFnDQphJFNvaW5zX2VzczwtYVssMjldDQphPC1hZ2dyZWdhdGUoYVssYyg5LDI5LDUwKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCnRvdDIoYSkNCnRvdGFsJGNpYmxlPC0xMDANCiN0b3RhbCRTb2Vzc19QPC1yb3VuZCh0b3RhbCRTb2luc19lc3MqMTAwL3RvdGFsWywyXSkNCnRvdGFsWywzXTwtTlVMTA0KdG90YWwkY2libGU9MTAwDQoja25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIk1vaXMiLCJOYWlzc1ZpdiIsIlNvaW5zRXNzIiwiQ2libGUiLCIlIikpDQoNCmI8LWRhdGFiDQojYiRWYXI8LXJvd1N1bXMoYlssNDI6NDRdLG5hLnJtPVQpDQpuYW1lcyhkYXRhZylbMzhdPC0iU29lc3MiDQpuYW1lcyhkYXRhZylbMTFdPC0iTmFpc3N2Ig0KZGF0YWclPiVncm91cF9ieSh6cyklPiVzdW1tYXJpc2UoU29lc3NhPXN1bShTb2VzcyxuYS5ybT1UKSxuYWlzc3ZhPXN1bShOYWlzc3YsbmEucm09VCkpJT4lIG11dGF0ZShTb2Vzcz1yb3VuZChTb2Vzc2EqMTAwL25haXNzdmEpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PVNvZXNzLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9U29lc3MpLGNleD0zLHZqdXN0PTIpK3NjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsT3JCciIpDQoNCm5hbWVzKGIpWzM5XTwtIlNvZXNzIg0KbmFtZXMoYilbMTJdPC0iTmFpc3N2Ig0KYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKFNvZXNzYT1zdW0oU29lc3MsbmEucm09VCksbmFpc3N2YT1zdW0oTmFpc3N2LG5hLnJtPVQpKSU+JSBtdXRhdGUoU29lc3M9cm91bmQoU29lc3NhKjEwMC9uYWlzc3ZhKSktPnANCg0KZ2dwbG90KHAsYWVzKHg9cGVyaW9kbmFtZSx5PVNvZXNzKSkrZ2VvbV9saW5lKGFlcyhncm91cD0xKSxzaXplPTIsY29sb3I9ImxpZ2h0Ymx1ZSIpK2dlb21fcG9pbnQoY29sb3I9InJlZCIpK3RoZW1lX2NsYXNzaWMoKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9MCxzaXplPTgpKStnZW9tX3RleHQoYWVzKGxhYmVsPXJvdW5kKFNvZXNzLDApKSxzaXplPTMsdmp1c3Q9LS41KStsYWJzKHg9IiIseT0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrY29vcmRfY2FydGVzaWFuKHk9Yyg0MCwxMDApKQ0KDQpgYGANCg0KJm5ic3A7DQpMYSBwZXJmb3JtYW5jZSBlbiBzb2lucyBlc3NlbnRpZWxzIGRlcyBub3V2ZWF1eCBuZXMgZXN0IGF1dG91ciBkZSA5NCUsIHBsdXMgZGUgNiBlbmZhbnRzIHN1ciAxMDAgbWFucXVlbnQgYXV4IHNvaW5zIGRhbnMgbGVzIFpTIHN1aXZhbnQ6S2Fib25kbywgS2l0ZW5nZS4NCmBgYHtyfQ0KYSA8LSBkYXRhLmZyYW1lKGMoIkthdGFuZ2EiKSxjKCJIYXV0IExvbWFtaSIpLGMoIjkwIiksYygiMTAwIiksYygiODkuOSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSIpKQ0KDQpgYGANCg0KJm5ic3A7DQoNCg0KJm5ic3A7DQombmJzcDsNCg0KDQotCSoqTnVtYmVyIG9mIHBvc3RwYXJ0dW0vbmV3Ym9ybiB2aXNpdHMgd2l0aGluIHRocmVlIGRheXMgb2YgYmlydGggaW4gVVNHLXN1cHBvcnRlZCBwcm9ncmFtcyBbMi4xLjZdKioNCg0KYGBge3J9DQphPC1kYXRhZw0KYSRDUE9OXzE8LWFbLDI4XQ0KYTwtYWdncmVnYXRlKGFbLGMoMjgsNTApXSxsaXN0KGEkcGVyaW9kbmFtZSksc3VtKQ0KYSRjaWJsZTwtcm91bmQoYXMubnVtZXJpYyhhcy5jaGFyYWN0ZXIoY2libGVzJENQb04xWzNdKSkvMTIpDQp0b3QyKGEpDQp0b3RhbFssMl08LU5VTEwNCiN0b3RhbCRwZXJjZW50PC1yb3VuZCh0b3RhbCRDUE9OXzEqMTAwL3RvdGFsJGNpYmxlLDApDQoja25pdHI6OmthYmxlKHRvdGFsLCJwYW5kb2MiLGFsaWduPSdsY2NyJykNCg0KYjwtZGF0YWINCm5hbWVzKGRhdGFnKVszN108LSJDcG9uMSINCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKENwb24xPXN1bShDcG9uMSkpLT5wDQpwJHBvcDwtY2x1cyRwb3ANCmdncGxvdChwLGFlcyh4PXpzLHk9Q3BvbjEsZmlsbD1wb3ApKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsY29sPSJncmV5IixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1DcG9uMSksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KbmFtZXMoYilbMzhdPC0iQ3BvbjEiDQpiJT4lZ3JvdXBfYnkocGVyaW9kbmFtZSklPiVzdW1tYXJpc2UoQ3BvbjE9c3VtKENwb24xLG5hLnJtPVQpKS0+cA0KDQpnZ3Bsb3QocCxhZXMoeD1wZXJpb2RuYW1lLHk9Q3BvbjEpKStnZW9tX2xpbmUoYWVzKGdyb3VwPTEpLHNpemU9Mixjb2xvcj0ibGlnaHRibHVlIikrZ2VvbV9wb2ludChjb2xvcj0icmVkIikrdGhlbWVfY2xhc3NpYygpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT0wLHNpemU9OCkpK2dlb21fdGV4dChhZXMobGFiZWw9cm91bmQoQ3BvbjEsMCkpLHNpemU9Myx2anVzdD0tLjUpK2xhYnMoeD0iIiwgeT0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrY29vcmRfY2FydGVzaWFuKHk9Yyg4MDAwLDE0MDAwKSkNCg0KYGBgDQoNCiZuYnNwOw0KTGVzIHZpc2l0ZXMgQ1BPTjEgb250IGNvbm51IHVuZSBjaHV0ZSBlbiBkZWNlbWJyZSwgbGEgcHJpbmNpcGFsZSByYWlzb24gc2VyYWl0IGxhIGNvbXBsZXR1ZGUgZGVzIGRvbm5lZXMgcXVpIGVzdCB0cmVzIGZhaWJsZS4NCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMjgwMjgiKSxjKCIyMzU1OSIpLGMoIjExOSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSglKSIpKQ0KDQpgYGANCg0KJm5ic3A7DQogICANCiZuYnNwOw0KDQotCSoqRHJvcC1vdXQgcmF0ZSBpbiBEVFAtSGVwQi1IaWIzIGFtb25nIGNoaWxkcmVuIGxlc3MgdGhhbiAxMiBtb250aHMgb2YgYWdlIFsyLjEuOV0qKg0KDQombmJzcDsNCg0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMi4zIiksYygiNCIpLGMoIjE0Mi44IikpDQoNCiNrbml0cjo6a2FibGUoYSwicGFuZG9jIixhbGlnbj0nbGNjY3InLGNvbC5uYW1lcz1jKCJSZWdpb24iLCJQcm92aW5jZSIsIkFjaGlldmVtZW50IiwiVGFyZ2V0IiwiQWNoaWV2bWVudCBSYXRlKCUpIikpDQoNCmI8LWRhdGFiDQojYiRWYXI8LXJvd1N1bXMoYlssNDI6NDRdLG5hLnJtPVQpDQpuYW1lcyhkYXRhZylbNzU6NzddPC1wYXN0ZTAoIlBlbnRhXzEiLDE6MykNCm5hbWVzKGRhdGFnKVsyNjoyOF08LXBhc3RlMCgiUGVudGFfMyIsMTozKQ0KZGF0YWclPiVncm91cF9ieSh6cyklPiVzdW1tYXJpc2UoUGVudGExPXN1bShQZW50YV8xMStQZW50YV8xMitQZW50YV8xMyxuYS5ybT1UKSxQZW50YTM9c3VtKFBlbnRhXzMxK1BlbnRhXzMyK1BlbnRhXzMzLG5hLnJtPVQpKSU+JSBtdXRhdGUoRHJvcD1yb3VuZCgoUGVudGExLVBlbnRhMykvUGVudGExLDIpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQojZ2dwbG90KHAsYWVzKHg9enMseT1Ecm9wLGZpbGw9cG9wKSkrZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLGNvbD0iZ3JleSIsYWxwaGE9LjcpK3RoZW1lX2NsYXNzaWMoKStsYWJzKHg9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2dlb21fdGV4dChhZXMobGFiZWw9RHJvcCksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KbmFtZXMoYilbNzY6NzhdPC1wYXN0ZTAoIlBlbnRhXzEiLDE6MykNCm5hbWVzKGIpWzI3OjI5XTwtcGFzdGUwKCJQZW50YV8zIiwxOjMpDQpiJT4lZ3JvdXBfYnkocGVyaW9kbmFtZSklPiVzdW1tYXJpc2UoUGVudGExPXN1bShQZW50YV8xMStQZW50YV8xMitQZW50YV8xMyxuYS5ybT1UKSxQZW50YTM9c3VtKFBlbnRhXzMxK1BlbnRhXzMyK1BlbnRhXzMzLG5hLnJtPVQpKSU+JSBtdXRhdGUoRHJvcD1yb3VuZCgoUGVudGExLVBlbnRhMykvUGVudGExLDIpKS0+cA0KDQojZ2dwbG90KHAsYWVzKHg9cGVyaW9kbmFtZSx5PURyb3ApKStnZW9tX2xpbmUoYWVzKGdyb3VwPTEpLHNpemU9Mixjb2xvcj0ibGlnaHRibHVlIikrZ2VvbV9wb2ludChjb2xvcj0icmVkIikrdGhlbWVfY2xhc3NpYygpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT0wLHNpemU9OCkpK2dlb21fdGV4dChhZXMobGFiZWw9cm91bmQoRHJvcCwyKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLHk9IiIpK3RoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCkpK2Nvb3JkX2NhcnRlc2lhbih5PWMoMCwxLjUpKQ0KDQpgYGANCg0KJm5ic3A7ICANCg0KDQombmJzcDsNCiZuYnNwOw0KJm5ic3A7DQoNCiMjIE5VVFJJVElPTg0KDQotCU51bWJlciBvZiBpbmRpdmlkdWFscyByZWNlaXZpbmcgbnV0cml0aW9uLXJlbGF0ZWQgcHJvZmVzc2lvbmFsIHRyYWluaW5nIHRocm91Z2ggVVNHIHN1cHBvcnRlZCBudXRyaW9uIHByb2dyYW1zIFsyLjEuMTBdDQoNCi0JTnVtYmVyIG9mIGNoaWxkcmVuIHVuZGVyLWZpdmUgKDAtNTkgbW9udGhzKSByZWFjaGVkIGJ5IFVTRy1zdXBwb3J0ZWQgbnV0cml0aW9uIHByb2dyYW1zIFsyLjEuMTFdDQoNCiZuYnNwOw0KYGBge3J9DQphIDwtIGRhdGEuZnJhbWUoYygiS2F0YW5nYSIpLGMoIkhhdXQgTG9tYW1pIiksYygiMzUzMDkxIiksYygiMTU4NDU2IiksYygiNDQuOSIpKQ0KDQoja25pdHI6OmthYmxlKGEsInBhbmRvYyIsYWxpZ249J2xjY2NyJyxjb2wubmFtZXM9YygiUmVnaW9uIiwiUHJvdmluY2UiLCJBY2hpZXZlbWVudCIsIlRhcmdldCIsIkFjaGlldm1lbnQgUmF0ZSglKSIpKQ0KDQpiPC1kYXRhYg0KbmFtZXMoZGF0YWcpWzQwXTwtIkNQUyINCmRhdGFnJT4lZ3JvdXBfYnkoenMpJT4lc3VtbWFyaXNlKENQUz1zdW0oQ1BTKSktPnANCnAkcG9wPC1jbHVzJHBvcA0KZ2dwbG90KHAsYWVzKHg9enMseT1DUFMsZmlsbD1wb3ApKStnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsY29sPSJncmV5IixhbHBoYT0uNykrdGhlbWVfY2xhc3NpYygpK2xhYnMoeD0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1DUFMpLGNleD0zLHZqdXN0PTIpK3NjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsT3JCciIpDQoNCm5hbWVzKGIpWzQxXTwtIkNQUyINCmIlPiVncm91cF9ieShwZXJpb2RuYW1lKSU+JXN1bW1hcmlzZShDUFM9c3VtKENQUyxuYS5ybT1UKSktPnANCg0KZ2dwbG90KHAsYWVzKHg9cGVyaW9kbmFtZSx5PUNQUykpK2dlb21fbGluZShhZXMoZ3JvdXA9MSksc2l6ZT0yLGNvbG9yPSJsaWdodGJsdWUiKStnZW9tX3BvaW50KGNvbG9yPSJyZWQiKSt0aGVtZV9jbGFzc2ljKCkrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTAsc2l6ZT04KSkrZ2VvbV90ZXh0KGFlcyhsYWJlbD1yb3VuZChDUFMsMCkpLHNpemU9Myx2anVzdD0tLjUpK2xhYnMoeD0iIiwgeT0iIikrdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkrY29vcmRfY2FydGVzaWFuKHk9Yyg1MDAwMCw4MDAwMCkpDQoNCmBgYA0KDQombmJzcDsNCkxhIFpTIGRlIE1hbGVtYmEgYSB1bmUgZm9ydGUgZnJlcXVlbnRhdGlvbiBlbiBDUFMsIGVsbGUgZXN0IHN1aXZpIHBhciBLaW5rb25kamEuDQoNCiZuYnNwOw0KJm5ic3A7DQombmJzcDsNCg0KIyMgUkVQUk9EVUNUSVZFIEhFQUxUSC9GQU1JTFkgUExBTk5JTkcNCiZuYnNwOw0KLQkqKk51bWJlciBvZiBuZXcgYWNjZXB0b3JzIHVzaW5nIG1vZGVybiBjb250cmFjZXB0aXZlIG1ldGhvZHMgaW4gVVNHLXN1cHBvcnRlZCBmYWNpbGl0aWVzIFszIGZlZSBwcm94eV0qKg0KDQpgYGB7cn0NCmE8LWRhdGFnDQphJEFjY2VwdDwtKGFbLDEwXSkNCmE8LWFnZ3JlZ2F0ZShhWyxjKDEwLDUwKV0sbGlzdChhJHBlcmlvZG5hbWUpLHN1bSkNCmEkY2libGU8LXJvdW5kKGNpYmxlcyROb3V2ZWxsZS5hY2NlcHRhbnRlWzNdLzEyKQ0KdG90MihhKQ0KdG90YWxbLDJdPC1OVUxMDQojdG90YWwkcGVyY2VudDwtcm91bmQodG90YWwkQWNjZXB0KjEwMC90b3RhbCRjaWJsZSwwKQ0KI2tuaXRyOjprYWJsZSh0b3RhbCwicGFuZG9jIixhbGlnbj0nbGNjcicpDQoNCmI8LWRhdGFiDQpuYW1lcyhkYXRhZylbMTJdPC0iQWNjZXB0Ig0KZGF0YWclPiVncm91cF9ieSh6cyklPiVzdW1tYXJpc2UoQWNjZXB0PXN1bShBY2NlcHQpKS0+cA0KcCRwb3A8LWNsdXMkcG9wDQpnZ3Bsb3QocCxhZXMoeD16cyx5PUFjY2VwdCxmaWxsPXBvcCkpK2dlb21fYmFyKHN0YXQ9J2lkZW50aXR5Jyxjb2w9ImdyZXkiLGFscGhhPS43KSt0aGVtZV9jbGFzc2ljKCkrbGFicyh4PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStnZW9tX3RleHQoYWVzKGxhYmVsPUFjY2VwdCksY2V4PTMsdmp1c3Q9Mikrc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZT0iWWxPckJyIikNCg0KbmFtZXMoYilbMTNdPC0iQWNjZXB0Ig0KYiU+JWdyb3VwX2J5KHBlcmlvZG5hbWUpJT4lc3VtbWFyaXNlKEFjY2VwdD1zdW0oQWNjZXB0LG5hLnJtPVQpKS0+cA0KDQpnZ3Bsb3QocCxhZXMoeD1wZXJpb2RuYW1lLHk9QWNjZXB0KSkrZ2VvbV9saW5lKGFlcyhncm91cD0xKSxzaXplPTIsY29sb3I9ImxpZ2h0Ymx1ZSIpK2dlb21fcG9pbnQoY29sb3I9InJlZCIpK3RoZW1lX2NsYXNzaWMoKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9MCxzaXplPTgpKStnZW9tX3RleHQoYWVzKGxhYmVsPXJvdW5kKEFjY2VwdCwwKSksc2l6ZT0zLHZqdXN0PS0uNSkrbGFicyh4PSIiLCB5PSIiKSt0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTApKStjb29yZF9jYXJ0ZXNpYW4oeT1jKDEwMDAwLDIzMDAwKSkNCg0KYGBgDQombmJzcDsNCkxlIG5vbWJyZSBkZXMgbm91dmVsbGVzIGFjY2VwdGFudGVzIGNvbm5haXQgdW5lIGRpbWludXRpb24gZW4gbm92ZW1icmUsIGxhIFpTIGRlIEthYm9uZG8gZGlhbmRhIGV0IEthbWluYSBzb250IHBsdXMgcGV1cGxlZXMgbWFpcyBsZSBub21icmUgZGVzIG5vdXZlbGxlcyBhY2NlcHRhbnRlcyBlc3QgZmFpYmxlIG1hbGdyZSBsZXMgYWN0aXZpdGVzIGRlIERCQyBtaXMgZW4gcGxhY2UuDQpgYGB7cn0NCmEgPC0gZGF0YS5mcmFtZShjKCJLYXRhbmdhIiksYygiSGF1dCBMb21hbWkiKSxjKCIzMzM3MiIpLGMoIjIwNDA1IiksYygiMTYzLjUiKSkNCg0KI2tuaXRyOjprYWJsZShhLCJwYW5kb2MiLGFsaWduPSdsY2NjcicsY29sLm5hbWVzPWMoIlJlZ2lvbiIsIlByb3ZpbmNlIiwiQWNoaWV2ZW1lbnQiLCJUYXJnZXQiLCJBY2hpZXZtZW50IFJhdGUoJSkiKSkNCg0KYGBgDQoNCiZuYnNwOw0KDQombmJzcDsNCg0KLQkqKk51bWJlciBvZiBjb3Vuc2VsaW5nIHZpc2l0cyBmb3IgRlAvIFJIIGFzIHJlc3VsdCBvZiBVU0cgc3VwcG9ydCBbMi4zXSoqDQoNCg0KDQoNCiMjIFRVQkVSQ1VMT1NJUw0KDQotCVRCIG5vdGlmaWNhdGlvbiByYXRlIHRocm91Z2ggVVNHLSBzdXBwb3J0ZWQgcHJvZ3JhbXMgWzIuMS4xN10NCg0KLQlOdW1iZXIgb2YgbXVsdGktZHJ1ZyByZXNpc3RhbnQgVEIgKE1EUi1UQikgY2FzZXMgZGV0ZWN0ZWQgWzIuMS4yMF0NCg0KIyMgV0FURVIsIFNBTklUQVRJT04sIEFORCBIWUdJRU5FDQoNCi0JTnVtYmVyIG9mIHBlb3BsZSBnYWluaW5nIGFjY2VzcyB0byBiYXNpYyBkcmlua2luZyB3YXRlciBzZXJ2aWNlcyBhcyBhIHJlc3VsdCBvZiBVU0cgYXNzaXN0YW5jZSBbMi42LjJdDQoNCi0JTnVtYmVyIG9mIHBlb3BsZSBnYWluaW5nIGFjY2VzcyB0byBhIGJhc2ljIHNhbml0YXRpb24gc2VydmljZSBhcyBhIHJlc3VsdCBvZiBVU0cgYXNzaXN0YW5jZSBbMi42LjNdDQoNCiMgNC5SRVBPUlRJTkcgQlkgUFJPR1JBTSBBQ1RJVklUSUVTDQoNCiMjIGNmciByYXBwb3J0IHByb2dyYW1tYXRpcXVlDQoNCg==